MADARA  3.2.3
madara::transport::NddsListener Class Reference

Container for NDDS callbacks. More...

#include <NddsListener.h>

Inheritance diagram for madara::transport::NddsListener:

Public Member Functions

 NddsListener (const TransportSettings &settings, const std::string &id, knowledge::ThreadSafeContext &context, BandwidthMonitor &send_monitor, BandwidthMonitor &receive_monitor, PacketScheduler &packet_scheduler)
 Constructor. More...
 
 NddsListener (const NddsListener &ref)
 Copy constructor. More...
 
 ~NddsListener ()
 Destructor. More...
 
void on_data_available (DDSDataReader *reader)
 Handles the case that data has become available. More...
 
void on_subscription_matched (DDSDataReader *reader, const DDS_SubscriptionMatchedStatus &status)
 Handles the case where a subscription has been matched. More...
 
void rebroadcast (const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
 Sends a rebroadcast packet. More...
 

Private Attributes

utility::ScopedArray< char > buffer_
 buffer for receiving More...
 
knowledge::ThreadSafeContextcontext_
 
const std::string id_
 
knowledge::CompiledExpression on_data_received_
 data received rules, defined in Transport settings More...
 
PacketSchedulerpacket_scheduler_
 scheduler for mimicking target network conditions More...
 
BandwidthMonitorreceive_monitor_
 monitor for receiving bandwidth usage More...
 
BandwidthMonitorsend_monitor_
 monitor for sending bandwidth usage More...
 
const QoSTransportSettings settings_
 Transport settings. More...
 

Detailed Description

Container for NDDS callbacks.

Definition at line 23 of file NddsListener.h.

Constructor & Destructor Documentation

madara::transport::NddsListener::NddsListener ( const TransportSettings settings,
const std::string &  id,
knowledge::ThreadSafeContext context,
BandwidthMonitor send_monitor,
BandwidthMonitor receive_monitor,
PacketScheduler packet_scheduler 
)

Constructor.

Parameters
settingsTransport settings
idunique identifier of this entity (e.g., host:port)
contextthe knowledge context to access and mutate
send_monitorbandwidth monitor for enforcing send limits
receive_monitorbandwidth monitor for enforcing receive limits
packet_schedulerscheduler for mimicking network conditions

Definition at line 10 of file NddsListener.cpp.

madara::transport::NddsListener::NddsListener ( const NddsListener ref)

Copy constructor.

Definition at line 43 of file NddsListener.cpp.

madara::transport::NddsListener::~NddsListener ( )

Destructor.

Definition at line 50 of file NddsListener.cpp.

Member Function Documentation

void madara::transport::NddsListener::on_data_available ( DDSDataReader *  reader)

Handles the case that data has become available.

Parameters
readerthe DDS data reader to read from

Definition at line 94 of file NddsListener.cpp.

void madara::transport::NddsListener::on_subscription_matched ( DDSDataReader *  reader,
const DDS_SubscriptionMatchedStatus &  status 
)

Handles the case where a subscription has been matched.

Parameters
readerthe DDS data reader to read from
statusthe status of the matched subscription

Definition at line 54 of file NddsListener.cpp.

void madara::transport::NddsListener::rebroadcast ( const char *  print_prefix,
MessageHeader header,
const knowledge::KnowledgeMap records 
)

Sends a rebroadcast packet.

Parameters
print_prefixprefix to include before every log message, e.g., "MyTransport::svc"
headerheader for the rebroadcasted packet
recordsrecords to rebroadcast (already filtered for rebroadcast)

Definition at line 61 of file NddsListener.cpp.

Member Data Documentation

utility::ScopedArray<char> madara::transport::NddsListener::buffer_
private

buffer for receiving

Definition at line 94 of file NddsListener.h.

knowledge::ThreadSafeContext* madara::transport::NddsListener::context_
private

Definition at line 88 of file NddsListener.h.

const std::string madara::transport::NddsListener::id_
private

Definition at line 85 of file NddsListener.h.

knowledge::CompiledExpression madara::transport::NddsListener::on_data_received_
private

data received rules, defined in Transport settings

Definition at line 91 of file NddsListener.h.

PacketScheduler& madara::transport::NddsListener::packet_scheduler_
private

scheduler for mimicking target network conditions

Definition at line 103 of file NddsListener.h.

BandwidthMonitor& madara::transport::NddsListener::receive_monitor_
private

monitor for receiving bandwidth usage

Definition at line 100 of file NddsListener.h.

BandwidthMonitor& madara::transport::NddsListener::send_monitor_
private

monitor for sending bandwidth usage

Definition at line 97 of file NddsListener.h.

const QoSTransportSettings madara::transport::NddsListener::settings_
private

Transport settings.

Definition at line 82 of file NddsListener.h.


The documentation for this class was generated from the following files: