1 #ifndef SPLICE_TRANSPORT_READ_THREAD_H
2 #define SPLICE_TRANSPORT_READ_THREAD_H
22 #include "ccpp_dds_dcps.h"
23 #include "madara/transport/splice/ccpp_SpliceKnowledgeUpdate.h"
50 Knowledge::UpdateDataReader_ptr& update_reader,
51 Knowledge::UpdateDataWriter_ptr& update_writer,
Compiled, optimized KaRL logic.
This class provides a distributed knowledge base to users.
This class stores variables and their values for use by any entity needing state information in a thr...
Abstract base class for implementing threads.
Provides monitoring capability of a transport's bandwidth.
Provides scheduler for dropping packets.
Container for quality-of-service settings.
Thread for reading knowledge updates via waitsets.
knowledge::CompiledExpression on_data_received_
data received rules, defined in Transport settings
PacketScheduler & packet_scheduler_
scheduler for mimicking target network conditions
knowledge::ThreadSafeContext * context_
The knowledge context that we will be updating.
void cleanup(void)
Cleanup function called by thread manager.
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.
BandwidthMonitor & send_monitor_
monitor for sending bandwidth usage
void init(knowledge::KnowledgeBase &knowledge)
Initializes MADARA context-related items.
madara::utility::ScopedArray< char > buffer_
buffer for receiving
::std::vector< ::std::string > assignment_symbols_
We currently allow multiassignments completely through the key.
BandwidthMonitor & receive_monitor_
monitor for receiving bandwidth usage
void run(void)
The main loop internals for the read thread.
void rebroadcast(const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
Sends a rebroadcast packet.
const QoSTransportSettings settings_
Transport settings.
const std::string id_
Unique identifier for this entity (e.g., host:port)
::Knowledge::UpdateDataReader_var update_reader_
The DDS data reader that we will take from.
Holds basic transport settings.
Provides functions and classes for the distributed knowledge base.
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Copyright(c) 2020 Galois.