MADARA
3.2.3
Main Page
Namespaces
Classes
Files
File List
File Members
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,
30
TransportSettings
& config);
31
32
~
BasicASIOTransport
() = 0;
33
34
void
close ()
override
;
35
36
int
setup ()
override
;
37
38
static
const
double
default_read_hertz
;
39
40
protected
:
41
virtual
int
setup_socket (udp::socket &socket);
42
virtual
int
setup_read_socket ();
43
virtual
int
setup_write_socket ();
44
virtual
int
setup_sockets ();
45
46
virtual
int
setup_read_threads ();
47
virtual
int
setup_read_thread (
double
hertz,
const
std::string
&name) = 0;
48
50
knowledge::KnowledgeBase
knowledge_
;
51
53
asio::io_service
io_service_
;
54
56
threads::Threader
read_threads_
;
57
59
std::vector<udp::endpoint>
addresses_
;
60
62
udp::socket socket_{io_service_};
63
64
friend
class
UdpTransportReadThread
;
65
friend
class
MulticastTransportReadThread
;
66
};
67
}
68
}
69
70
#endif
madara::transport::BasicASIOTransport::knowledge_
knowledge::KnowledgeBase knowledge_
knowledge base for threads to use
Definition:
BasicASIOTransport.h:50
KnowledgeRecord.h
madara::transport::BasicASIOTransport::default_read_hertz
static const double default_read_hertz
Definition:
BasicASIOTransport.h:38
BandwidthMonitor.h
madara::knowledge::ThreadSafeContext
This class stores variables and their values for use by any entity needing state information in a thr...
Definition:
ThreadSafeContext.h:75
madara::transport::MulticastTransportReadThread
Thread for reading knowledge updates through a Multicast datagram socket.
Definition:
MulticastTransportReadThread.h:38
madara::transport::TransportSettings
Holds basic transport settings.
Definition:
TransportSettings.h:76
Transport.h
QoSTransportSettings.h
madara::knowledge::tags::string
static struct madara::knowledge::tags::string_t string
madara::knowledge::KnowledgeBase
This class provides a distributed knowledge base to users.
Definition:
KnowledgeBase.h:45
madara::transport::BasicASIOTransport::io_service_
asio::io_service io_service_
Boost::ASIO IO context.
Definition:
BasicASIOTransport.h:53
ExpressionTree.h
madara::transport::BasicASIOTransport::addresses_
std::vector< udp::endpoint > addresses_
holds all multicast addresses we are sending to
Definition:
BasicASIOTransport.h:59
Threader.h
madara::threads::Threader
Starts threads with first class support of MADARA contexts.
Definition:
Threader.h:35
KnowledgeBase.h
madara::transport::BasicASIOTransport::read_threads_
threads::Threader read_threads_
threads for reading knowledge updates
Definition:
BasicASIOTransport.h:56
ScopedArray.h
madara
Copyright (c) 2015 Carnegie Mellon University.
Definition:
AggregateFilter.h:30
madara::transport::Base
Base class from which all transports must be derived.
Definition:
Transport.h:45
madara::transport::UdpTransportReadThread
Thread for reading knowledge updates through a UDP socket.
Definition:
UdpTransportReadThread.h:29
madara::transport::udp
boost::asio::ip::udp udp
Definition:
BasicASIOTransport.h:23
madara::transport::BasicASIOTransport
Definition:
BasicASIOTransport.h:25
include
madara
transport
BasicASIOTransport.h
Generated on Thu Jul 12 2018 17:38:26 for MADARA by
1.8.11