MADARA  3.2.3
SpliceTransportReadThread.h
Go to the documentation of this file.
1 #ifndef SPLICE_TRANSPORT_READ_THREAD_H
2 #define SPLICE_TRANSPORT_READ_THREAD_H
3 
12 #include <string>
13 
21 
22 #include "ccpp_dds_dcps.h"
23 #include "madara/transport/splice/ccpp_SpliceKnowledgeUpdate.h"
24 
25 namespace madara
26 {
27  namespace transport
28  {
34  {
35  public:
48  SpliceReadThread (const std::string & id,
49  const TransportSettings & settings,
51  Knowledge::UpdateDataReader_ptr & update_reader,
52  Knowledge::UpdateDataWriter_ptr & update_writer,
53  BandwidthMonitor & send_monitor,
54  BandwidthMonitor & receive_monitor,
55  PacketScheduler & packet_scheduler);
56 
62 
66  void cleanup (void);
67 
71  void run (void);
72 
81  void rebroadcast (
82  const char * print_prefix,
83  MessageHeader * header,
84  const knowledge::KnowledgeMap & records);
85 
91  ::std::vector< ::std::string> assignment_symbols_;
92 
97 
102 
107 
111  ::Knowledge::UpdateDataReader_var update_reader_;
112 
116  ::Knowledge::UpdateDataWriter_var update_writer_;
117 
120 
123 
126 
129 
132  };
133  }
134 }
135 
136 #endif
BandwidthMonitor & send_monitor_
monitor for sending bandwidth usage
SpliceReadThread(const std::string &id, const TransportSettings &settings, knowledge::ThreadSafeContext &context, Knowledge::UpdateDataReader_ptr &update_reader, Knowledge::UpdateDataWriter_ptr &update_writer, BandwidthMonitor &send_monitor, BandwidthMonitor &receive_monitor, PacketScheduler &packet_scheduler)
Constructor.
::Knowledge::UpdateDataWriter_var update_writer_
The DDS data writer that we can write to.
const QoSTransportSettings settings_
Transport settings.
This class stores variables and their values for use by any entity needing state information in a thr...
Provides scheduler for dropping packets.
BandwidthMonitor & receive_monitor_
monitor for receiving bandwidth usage
Holds basic transport settings.
Compiled, optimized KaRL logic.
madara::utility::ScopedArray< char > buffer_
buffer for receiving
void rebroadcast(const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
Sends a rebroadcast packet.
knowledge::CompiledExpression on_data_received_
data received rules, defined in Transport settings
static struct madara::knowledge::tags::string_t string
::std::vector< ::std::string > assignment_symbols_
We currently allow multiassignments completely through the key.
Abstract base class for implementing threads.
Definition: BaseThread.h:38
void init(knowledge::KnowledgeBase &knowledge)
Initializes MADARA context-related items.
::Knowledge::UpdateDataReader_var update_reader_
The DDS data reader that we will take from.
This class provides a distributed knowledge base to users.
Definition: KnowledgeBase.h:45
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Thread for reading knowledge updates via waitsets.
void cleanup(void)
Cleanup function called by thread manager.
Container for quality-of-service settings.
Provides monitoring capability of a transport&#39;s bandwidth.
Provides functions and classes for the distributed knowledge base.
const std::string id_
Unique identifier for this entity (e.g., host:port)
PacketScheduler & packet_scheduler_
scheduler for mimicking target network conditions
Copyright (c) 2015 Carnegie Mellon University.
Defines a robust message header which is the default for KaRL messages.
Definition: MessageHeader.h:57
knowledge::ThreadSafeContext * context_
The knowledge context that we will be updating.
void run(void)
The main loop internals for the read thread.