MADARA  3.4.1
UdpTransportReadThread.h
Go to the documentation of this file.
1 #ifndef _MADARA_UDP_TRANSPORT_READ_THREAD_H_
2 #define _MADARA_UDP_TRANSPORT_READ_THREAD_H_
3 
4 #include <string>
5 
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;
24 
30 {
31 public:
33 
38  void init(knowledge::KnowledgeBase& knowledge) override;
39 
43  void cleanup(void) override;
44 
48  void run(void) override;
49 
58  void rebroadcast(const char* print_prefix, MessageHeader* header,
59  const knowledge::KnowledgeMap& records);
60 
61 protected:
63 
65 
66 #ifndef _MADARA_NO_KARL_
69 #endif // _MADARA_NO_KARL_
70 
73 
76 
79 
82 
85 
88 };
89 }
90 }
91 
92 #endif // _MADARA_UDP_TRANSPORT_READ_THREAD_H_
Compiled, optimized KaRL logic.
This class provides a distributed knowledge base to users.
Definition: KnowledgeBase.h:45
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
Abstract base class for implementing threads.
Definition: BaseThread.h:39
Defines a robust message header which is the default for KaRL messages.
Definition: MessageHeader.h:57
Thread for reading knowledge updates through a UDP socket.
knowledge::containers::Integer received_data_
received data
knowledge::containers::Integer received_packets_
received packets
void cleanup(void) override
Cleanup function called by thread manager.
madara::knowledge::CompiledExpression on_data_received_
data received rules, defined in Transport settings
madara::utility::ScopedArray< char > buffer_
buffer for receiving
knowledge::containers::Integer received_data_max_
max data received
knowledge::containers::Integer received_data_min_
min data received
void init(knowledge::KnowledgeBase &knowledge) override
Initializes MADARA context-related items.
void run(void) override
The main loop internals for the read thread.
knowledge::containers::Integer failed_receives_
bad receives
void rebroadcast(const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
Sends a rebroadcast packet.
UDP-based transport for knowledge.
Definition: UdpTransport.h:39
Provides functions and classes for the distributed knowledge base.
::std::map< std::string, KnowledgeRecord > KnowledgeMap
boost::asio::ip::udp udp
Copyright(c) 2020 Galois.