MADARA  3.2.3
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;
23  using udp = boost::asio::ip::udp;
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 (
59  const char * print_prefix,
60  MessageHeader * header,
61  const knowledge::KnowledgeMap & records);
62 
63  protected:
65 
67 
68 #ifndef _MADARA_NO_KARL_
71 #endif // _MADARA_NO_KARL_
72 
75  };
76  }
77 }
78 
79 #endif // _MADARA_UDP_TRANSPORT_READ_THREAD_H_
void rebroadcast(const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
Sends a rebroadcast packet.
This class stores variables and their values for use by any entity needing state information in a thr...
madara::knowledge::CompiledExpression on_data_received_
data received rules, defined in Transport settings
Compiled, optimized KaRL logic.
void init(knowledge::KnowledgeBase &knowledge) override
Initializes MADARA context-related items.
Abstract base class for implementing threads.
Definition: BaseThread.h:38
This class provides a distributed knowledge base to users.
Definition: KnowledgeBase.h:45
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Provides functions and classes for the distributed knowledge base.
void cleanup(void) override
Cleanup function called by thread manager.
madara::utility::ScopedArray< char > buffer_
buffer for receiving
Copyright (c) 2015 Carnegie Mellon University.
void run(void) override
The main loop internals for the read thread.
Defines a robust message header which is the default for KaRL messages.
Definition: MessageHeader.h:57
UDP-based transport for knowledge.
Definition: UdpTransport.h:37
Thread for reading knowledge updates through a UDP socket.
boost::asio::ip::udp udp