MADARA
3.4.1
BasicASIOTransport.h
Go to the documentation of this file.
1
#ifndef _MADARA_BASIC_ASIO_TRANSPORT_H_
2
#define _MADARA_BASIC_ASIO_TRANSPORT_H_
3
4
#include <string>
5
6
#include "madara/MadaraExport.h"
7
#include "
madara/utility/ScopedArray.h
"
8
#include "
madara/transport/QoSTransportSettings.h
"
9
#include "
madara/transport/Transport.h
"
10
#include "
madara/knowledge/KnowledgeBase.h
"
11
#include "
madara/knowledge/KnowledgeRecord.h
"
12
#include "
madara/expression/ExpressionTree.h
"
13
#include "
madara/transport/BandwidthMonitor.h
"
14
#include "
madara/threads/Threader.h
"
15
#include "madara/Boost.h"
16
17
namespace
madara
18
{
19
namespace
transport
20
{
21
namespace
asio = boost::asio;
22
namespace
ip = boost::asio::ip;
23
using
udp
=
boost::asio::ip::udp
;
24
25
class
MADARA_EXPORT
BasicASIOTransport
:
public
Base
26
{
27
public
:
28
BasicASIOTransport
(
const
std::string
&
id
,
29
madara::knowledge::ThreadSafeContext
& context,
TransportSettings
& config);
30
31
~
BasicASIOTransport
() = 0;
32
33
void
close()
override
;
34
35
int
setup()
override
;
36
37
static
const
double
default_read_hertz
;
38
39
inline
const
std::vector<udp::endpoint>&
get_udp_endpoints
(
void
)
40
{
41
return
addresses_;
42
}
43
44
protected
:
45
virtual
int
setup_socket(udp::socket& socket);
46
virtual
int
setup_read_socket();
47
virtual
int
setup_write_socket();
48
virtual
int
setup_sockets();
49
50
virtual
int
setup_read_threads();
51
virtual
int
setup_read_thread
(
double
hertz,
const
std::string
& name) = 0;
52
54
knowledge::KnowledgeBase
knowledge_
;
55
57
asio::io_service
io_service_
;
58
60
threads::Threader
read_threads_
;
61
63
std::vector<udp::endpoint>
addresses_
;
64
66
udp::socket socket_{io_service_};
67
68
friend
class
UdpTransportReadThread
;
69
friend
class
MulticastTransportReadThread
;
70
};
71
}
72
}
73
74
#endif
BandwidthMonitor.h
ExpressionTree.h
KnowledgeBase.h
KnowledgeRecord.h
QoSTransportSettings.h
ScopedArray.h
Threader.h
Transport.h
madara::knowledge::KnowledgeBase
This class provides a distributed knowledge base to users.
Definition:
KnowledgeBase.h:45
madara::knowledge::ThreadSafeContext
This class stores variables and their values for use by any entity needing state information in a thr...
Definition:
ThreadSafeContext.h:76
madara::threads::Threader
Starts threads with first class support of MADARA contexts.
Definition:
Threader.h:36
madara::transport::Base
Base class from which all transports must be derived.
Definition:
Transport.h:46
madara::transport::BasicASIOTransport
Definition:
BasicASIOTransport.h:26
madara::transport::BasicASIOTransport::read_threads_
threads::Threader read_threads_
threads for reading knowledge updates
Definition:
BasicASIOTransport.h:60
madara::transport::BasicASIOTransport::setup_read_thread
virtual int setup_read_thread(double hertz, const std::string &name)=0
madara::transport::BasicASIOTransport::get_udp_endpoints
const std::vector< udp::endpoint > & get_udp_endpoints(void)
Definition:
BasicASIOTransport.h:39
madara::transport::BasicASIOTransport::default_read_hertz
static const double default_read_hertz
Definition:
BasicASIOTransport.h:37
madara::transport::BasicASIOTransport::addresses_
std::vector< udp::endpoint > addresses_
holds all multicast addresses we are sending to
Definition:
BasicASIOTransport.h:63
madara::transport::BasicASIOTransport::knowledge_
knowledge::KnowledgeBase knowledge_
knowledge base for threads to use
Definition:
BasicASIOTransport.h:54
madara::transport::BasicASIOTransport::io_service_
asio::io_service io_service_
Boost::ASIO IO context.
Definition:
BasicASIOTransport.h:57
madara::transport::MulticastTransportReadThread
Thread for reading knowledge updates through a Multicast datagram socket.
Definition:
MulticastTransportReadThread.h:39
madara::transport::TransportSettings
Holds basic transport settings.
Definition:
TransportSettings.h:80
madara::transport::UdpTransportReadThread
Thread for reading knowledge updates through a UDP socket.
Definition:
UdpTransportReadThread.h:30
madara::knowledge::tags::string
constexpr string_t string
Definition:
KnowledgeRecord.h:56
madara::transport::udp
boost::asio::ip::udp udp
Definition:
BasicASIOTransport.h:23
madara
Copyright(c) 2020 Galois.
Definition:
AggregateFilter.h:31
include
madara
transport
BasicASIOTransport.h
Generated on Sat Jan 20 2024 00:40:27 for MADARA by
1.9.1