MADARA  3.1.8
NddsListener.h
Go to the documentation of this file.
1 #ifndef _MADARA_NDDS_LISTENER_H_
2 #define _MADARA_NDDS_LISTENER_H_
3 
4 
5 #include <string>
6 
9 
10 #include <ndds/ndds_cpp.h>
11 
12 #include "madara/transport/ndds/Ndds_Knowledge_Update.h"
13 #include "madara/transport/ndds/Ndds_Knowledge_UpdateSupport.h"
14 
15 namespace madara
16 {
17  namespace transport
18  {
23  class NDDSListener: public DDSDataReaderListener
24  {
25  public:
37  const TransportSettings & settings, const std::string & id,
39  BandwidthMonitor & send_monitor,
40  BandwidthMonitor & receive_monitor,
41  PacketScheduler & packet_scheduler);
42 
46  NDDSListener(const NDDSListener &ref);
47 
51  ~NDDSListener();
52 
58  void on_subscription_matched (DDSDataReader * reader,
59  const DDS_SubscriptionMatchedStatus & status);
60 
69  void rebroadcast (
70  const char * print_prefix,
71  MessageHeader * header,
72  const knowledge::KnowledgeMap & records);
73 
78  void on_data_available(DDSDataReader* reader);
79  private:
80 
83 
84  // NDDS variables
86 
87  // context for updating variables from network
89 
92 
95 
98 
101 
104  }; // End of class NDDSListener
105  }
106 }
107 
108 #endif // _MADARA_NDDS_LISTENER_H_
void on_data_available(DDSDataReader *reader)
Handles the case that data has become available.
utility::ScopedArray< char > buffer_
buffer for receiving
Definition: NddsListener.h:94
BandwidthMonitor & receive_monitor_
monitor for receiving bandwidth usage
Definition: NddsListener.h:100
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...
Provides scheduler for dropping packets.
Holds basic transport settings.
Compiled, optimized KaRL logic.
BandwidthMonitor & send_monitor_
monitor for sending bandwidth usage
Definition: NddsListener.h:97
const QoSTransportSettings settings_
Transport settings.
Definition: NddsListener.h:82
::std::map< std::string, KnowledgeRecord > KnowledgeMap
knowledge::ThreadSafeContext * context_
Definition: NddsListener.h:88
knowledge::CompiledExpression on_data_received_
data received rules, defined in Transport settings
Definition: NddsListener.h:91
static constexpr struct madara::knowledge::tags::string_t string
void on_subscription_matched(DDSDataReader *reader, const DDS_SubscriptionMatchedStatus &status)
Handles the case where a subscription has been matched.
Container for quality-of-service settings.
Provides monitoring capability of a transport&#39;s bandwidth.
NDDSListener(const TransportSettings &settings, const std::string &id, knowledge::ThreadSafeContext &context, BandwidthMonitor &send_monitor, BandwidthMonitor &receive_monitor, PacketScheduler &packet_scheduler)
Constructor.
Copyright (c) 2015 Carnegie Mellon University.
Defines a robust message header which is the default for KaRL messages.
Definition: MessageHeader.h:56
PacketScheduler & packet_scheduler_
scheduler for mimicking target network conditions
Definition: NddsListener.h:103
Container for NDDS callbacks.
Definition: NddsListener.h:23