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"
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;
25 
38 class MADARA_EXPORT UdpTransport : public BasicASIOTransport
39 {
40 public:
41  UdpTransport(const std::string& id,
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 
67 
70 
73 
76 
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 
113 
115 };
116 }
117 }
118 
120 
121 #endif // _MADARA_UDP_TRANSPORT_H_
This class stores variables and their values for use by any entity needing state information in a thr...
This class stores an integer within a variable context.
Definition: Integer.h:32
Holds basic transport settings.
Thread for reading knowledge updates through a UDP socket.
UDP-based transport for knowledge.
Definition: UdpTransport.h:39
knowledge::containers::Integer sent_packets
sent packets
Definition: UdpTransport.h:66
knowledge::containers::Integer sent_data_min
min data sent
Definition: UdpTransport.h:78
virtual bool pre_send_buffer(size_t addr_index)
Definition: UdpTransport.h:106
utility::EpochEnforcer< utility::Clock > enforcer_
enforces epochs when user specifies a max_send_hertz
Definition: UdpTransport.h:112
knowledge::containers::Integer sent_data
sent data
Definition: UdpTransport.h:72
knowledge::containers::Integer failed_sends
failed sends
Definition: UdpTransport.h:69
knowledge::containers::Integer sent_data_max
max data sent
Definition: UdpTransport.h:75
constexpr string_t string
::std::map< std::string, KnowledgeRecord > KnowledgeMap
boost::asio::ip::udp udp
Copyright(c) 2020 Galois.