MADARA
3.4.1
UdpTransport.h
Go to the documentation of this file.
1
#ifndef _MADARA_UDP_TRANSPORT_H_
2
#define _MADARA_UDP_TRANSPORT_H_
3
4
#include <string>
5
6
#include "madara/MadaraExport.h"
7
#include "
madara/transport/BasicASIOTransport.h
"
8
#include "
madara/transport/Transport.h
"
9
#include "
madara/threads/Threader.h
"
10
#include "
madara/utility/EpochEnforcer.h
"
11
#include "
madara/knowledge/containers/Integer.h
"
12
13
#include <string>
14
#include <map>
15
16
#include "madara/Boost.h"
17
18
namespace
madara
19
{
20
namespace
transport
21
{
22
namespace
asio = boost::asio;
23
namespace
ip = boost::asio::ip;
24
using
udp
=
boost::asio::ip::udp
;
25
38
class
MADARA_EXPORT
UdpTransport
:
public
BasicASIOTransport
39
{
40
public
:
41
UdpTransport
(
const
std::string
&
id
,
42
madara::knowledge::ThreadSafeContext
& context,
TransportSettings
& config,
43
bool
launch_transport);
44
49
int
reliability(
void
)
const
;
50
55
int
reliability(
const
int
& setting);
56
62
long
send_data(
63
const
madara::knowledge::KnowledgeMap
& updates)
override
;
64
66
knowledge::containers::Integer
sent_packets
;
67
69
knowledge::containers::Integer
failed_sends
;
70
72
knowledge::containers::Integer
sent_data
;
73
75
knowledge::containers::Integer
sent_data_max
;
76
78
knowledge::containers::Integer
sent_data_min
;
79
87
long
receive_buffer(
88
char
* buf,
size_t
& bytes_read, udp::endpoint& remote);
89
97
long
send_buffer(
const
udp::endpoint& target,
98
const
char
* buf,
size_t
size);
99
100
protected
:
101
int
setup_read_socket()
override
;
102
int
setup_write_socket()
override
;
103
int
setup_read_thread(
double
hertz,
const
std::string
& name)
override
;
104
105
long
send_message(
const
char
* buf,
size_t
size, uint64_t clock);
106
virtual
bool
pre_send_buffer
(
size_t
addr_index)
107
{
108
return
addr_index != 0;
109
}
110
112
utility::EpochEnforcer<utility::Clock>
enforcer_
;
113
114
friend
class
UdpTransportReadThread
;
115
};
116
}
117
}
118
119
#include "
madara/transport/udp/UdpTransportReadThread.h
"
120
121
#endif
// _MADARA_UDP_TRANSPORT_H_
BasicASIOTransport.h
EpochEnforcer.h
Integer.h
Threader.h
Transport.h
UdpTransportReadThread.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:76
madara::knowledge::containers::Integer
This class stores an integer within a variable context.
Definition:
Integer.h:32
madara::transport::BasicASIOTransport
Definition:
BasicASIOTransport.h:26
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::transport::UdpTransport
UDP-based transport for knowledge.
Definition:
UdpTransport.h:39
madara::transport::UdpTransport::sent_packets
knowledge::containers::Integer sent_packets
sent packets
Definition:
UdpTransport.h:66
madara::transport::UdpTransport::sent_data_min
knowledge::containers::Integer sent_data_min
min data sent
Definition:
UdpTransport.h:78
madara::transport::UdpTransport::pre_send_buffer
virtual bool pre_send_buffer(size_t addr_index)
Definition:
UdpTransport.h:106
madara::transport::UdpTransport::enforcer_
utility::EpochEnforcer< utility::Clock > enforcer_
enforces epochs when user specifies a max_send_hertz
Definition:
UdpTransport.h:112
madara::transport::UdpTransport::sent_data
knowledge::containers::Integer sent_data
sent data
Definition:
UdpTransport.h:72
madara::transport::UdpTransport::failed_sends
knowledge::containers::Integer failed_sends
failed sends
Definition:
UdpTransport.h:69
madara::transport::UdpTransport::sent_data_max
knowledge::containers::Integer sent_data_max
max data sent
Definition:
UdpTransport.h:75
madara::utility::EpochEnforcer< utility::Clock >
madara::knowledge::tags::string
constexpr string_t string
Definition:
KnowledgeRecord.h:56
madara::knowledge::KnowledgeMap
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Definition:
KnowledgeRecord.h:1818
madara::transport::udp
boost::asio::ip::udp udp
Definition:
BasicASIOTransport.h:23
madara
Copyright(c) 2020 Galois.
Definition:
AggregateFilter.h:31
include
madara
transport
udp
UdpTransport.h
Generated on Sat Jan 20 2024 00:40:27 for MADARA by
1.9.1