MADARA
3.1.8
|
This class provides an interface into the Open Splice dissemination transport. More...
#include <SpliceDDSTransport.h>
Public Types | |
enum | { ERROR_OSPL_NOT_STARTED = -1, ERROR_SUB_BAD_CREATE = -2, ERROR_PUB_BAD_CREATE = -3 } |
typedef std::vector< std::string > | HostsVector |
Used to define a vector of hosts to contact. More... | |
Public Member Functions | |
SpliceDDSTransport (const std::string &id, knowledge::ThreadSafeContext &context, TransportSettings &config, bool launch_transport) | |
Constructor. More... | |
~SpliceDDSTransport () | |
Destructor. More... | |
int | check_transport (void) |
all subclasses should call this method at the beginning of send_data More... | |
void | close (void) |
Closes this transport. More... | |
void | invalidate_transport (void) |
Invalidates a transport to indicate it is shutting down. More... | |
long | prep_send (const madara::knowledge::KnowledgeRecords &orig_updates, const char *print_prefix) |
Preps a message for sending. More... | |
int | reliability (void) const |
Accesses reliability setting. More... | |
int | reliability (const int &setting) |
Sets the reliability setting. More... | |
long | send_data (const knowledge::KnowledgeRecords &updates) |
Sends a list of knowledge updates to listeners. More... | |
TransportSettings & | settings (void) |
Getter for the transport settings. More... | |
int | setup (void) |
Activates this transport. More... | |
int | validate_transport (void) |
Validates a transport to indicate it is not shutting down. More... | |
Static Public Attributes | |
static const int | PROFILES = 2 |
Protected Attributes | |
madara::utility::ScopedArray< char > | buffer_ |
buffer for sending More... | |
madara::knowledge::ThreadSafeContext & | context_ |
HostsVector | hosts |
const std::string | id_ |
host:port identifier of this process More... | |
volatile bool | is_valid_ |
ACE_Thread_Mutex | mutex_ |
madara::expression::ExpressionTree | on_data_received_ |
data received rules, defined in Transport settings More... | |
PacketScheduler | packet_scheduler_ |
scheduler for dropping packets to simulate network issues More... | |
BandwidthMonitor | receive_monitor_ |
monitor for receiving bandwidth usage More... | |
BandwidthMonitor | send_monitor_ |
monitor for sending bandwidth usage More... | |
QoSTransportSettings | settings_ |
volatile bool | shutting_down_ |
Condition | valid_setup_ |
Private Member Functions | |
void | check_handle (void *handle, const char *info) |
Splice handle checker. More... | |
void | check_status (DDS::ReturnCode_t status, const char *info) |
Splice status checker. More... | |
const char * | get_error_name (DDS::ReturnCode_t status) |
Returns error name of the specific status. More... | |
Private Attributes | |
DDS::DataReader_var | datareader_ |
DDS::DataReaderQos | datareader_qos_ |
DDS::DataWriter_var | datawriter_ |
DDS::DataWriterQos | datawriter_qos_ |
DDS::DomainId_t | domain_ |
DDS::DomainParticipantFactory_var | domain_factory_ |
DDS::DomainParticipant_var | domain_participant_ |
knowledge::KnowledgeBase | knowledge_ |
knowledge base for threads to use More... | |
Knowledge::UpdateDataWriter_var | latency_update_writer_ |
DDS::DataWriter_var | latencywriter_ |
DDS::DomainParticipantQos | part_qos_ |
DDS::PublisherQos | pub_qos_ |
DDS::Publisher_var | publisher_ |
threads::Threader | read_threads_ |
threads for reading knowledge updates More... | |
DDS::SubscriberQos | sub_qos_ |
DDS::Subscriber_var | subscriber_ |
DDS::TopicQos | topic_qos_ |
Knowledge::UpdateDataReader_var | update_reader_ |
DDS::Topic_var | update_topic_ |
Knowledge::UpdateTypeSupport | update_type_support_ |
Knowledge::UpdateDataWriter_var | update_writer_ |
Static Private Attributes | |
static const char * | partition_ = "Madara_knowledge" |
static const char * | ret_code_names [] |
static const char * | topic_names_ [] |
This class provides an interface into the Open Splice dissemination transport.
Definition at line 22 of file SpliceDDSTransport.h.
|
inherited |
Used to define a vector of hosts to contact.
Definition at line 68 of file Transport.h.
anonymous enum |
Enumerator | |
---|---|
ERROR_OSPL_NOT_STARTED | |
ERROR_SUB_BAD_CREATE | |
ERROR_PUB_BAD_CREATE |
Definition at line 26 of file SpliceDDSTransport.h.
madara::transport::SpliceDDSTransport::SpliceDDSTransport | ( | const std::string & | id, |
knowledge::ThreadSafeContext & | context, | ||
TransportSettings & | config, | ||
bool | launch_transport | ||
) |
Constructor.
id | unique identifer - usually a combination of host:port |
context | knowledge context |
config | transport configuration settings |
launch_transport | whether or not to launch this transport |
Definition at line 35 of file SpliceDDSTransport.cpp.
madara::transport::SpliceDDSTransport::~SpliceDDSTransport | ( | ) |
Destructor.
Definition at line 55 of file SpliceDDSTransport.cpp.
|
private |
Splice handle checker.
Definition at line 428 of file SpliceDDSTransport.cpp.
|
private |
Splice status checker.
Definition at line 442 of file SpliceDDSTransport.cpp.
|
inlineinherited |
all subclasses should call this method at the beginning of send_data
Definition at line 19 of file Transport.inl.
|
virtual |
Closes this transport.
Reimplemented from madara::transport::Base.
Definition at line 61 of file SpliceDDSTransport.cpp.
|
private |
Returns error name of the specific status.
Definition at line 458 of file SpliceDDSTransport.cpp.
|
inlineinherited |
Invalidates a transport to indicate it is shutting down.
Definition at line 34 of file Transport.inl.
|
inherited |
Preps a message for sending.
orig_updates | updates before send filtering is applied |
print_prefix | prefix to include before every log message, e.g., "MyTransport::svc" |
filter the updates according to the filters specified by the user in QoSTransportSettings (if applicable)
size = buffer[0] (unsigned 64 bit) transport id = buffer[8] (8 byte) domain = buffer[16] (32 byte domain name) originator = buffer[48] (64 byte originator host:port) type = buffer[112] (unsigned 32 bit type of message–usually MULTIASSIGN) updates = buffer[116] (unsigned 32 bit number of updates) quality = buffer[120] (unsigned 32 bit quality of message) clock = buffer[124] (unsigned 64 bit clock for this message) ttl = buffer[132] (the new knowledge starts here) knowledge = buffer[133] (the new knowledge starts here)
Definition at line 815 of file Transport.cpp.
int madara::transport::SpliceDDSTransport::reliability | ( | void | ) | const |
Accesses reliability setting.
Definition at line 103 of file SpliceDDSTransport.cpp.
int madara::transport::SpliceDDSTransport::reliability | ( | const int & | setting | ) |
Sets the reliability setting.
Definition at line 109 of file SpliceDDSTransport.cpp.
|
virtual |
Sends a list of knowledge updates to listeners.
updates | listing of all updates that must be sent |
get current lamport clock.
Implements madara::transport::Base.
Definition at line 383 of file SpliceDDSTransport.cpp.
|
inlineinherited |
Getter for the transport settings.
Definition at line 45 of file Transport.inl.
|
virtual |
Activates this transport.
Reimplemented from madara::transport::Base.
Definition at line 115 of file SpliceDDSTransport.cpp.
|
inlineinherited |
Validates a transport to indicate it is not shutting down.
Definition at line 6 of file Transport.inl.
|
protectedinherited |
buffer for sending
Definition at line 209 of file Transport.h.
|
protectedinherited |
Definition at line 191 of file Transport.h.
|
private |
Definition at line 121 of file SpliceDDSTransport.h.
|
private |
Definition at line 113 of file SpliceDDSTransport.h.
|
private |
Definition at line 120 of file SpliceDDSTransport.h.
|
private |
Definition at line 111 of file SpliceDDSTransport.h.
|
private |
Definition at line 115 of file SpliceDDSTransport.h.
|
private |
Definition at line 116 of file SpliceDDSTransport.h.
|
private |
Definition at line 117 of file SpliceDDSTransport.h.
|
protectedinherited |
Definition at line 181 of file Transport.h.
|
protectedinherited |
host:port identifier of this process
Definition at line 186 of file Transport.h.
|
protectedinherited |
Definition at line 179 of file Transport.h.
|
private |
knowledge base for threads to use
Definition at line 99 of file SpliceDDSTransport.h.
|
private |
Definition at line 125 of file SpliceDDSTransport.h.
|
private |
Definition at line 122 of file SpliceDDSTransport.h.
|
protectedinherited |
Definition at line 182 of file Transport.h.
|
protectedinherited |
data received rules, defined in Transport settings
Definition at line 195 of file Transport.h.
|
protectedinherited |
scheduler for dropping packets to simulate network issues
Definition at line 206 of file Transport.h.
|
private |
Definition at line 108 of file SpliceDDSTransport.h.
|
staticprivate |
Definition at line 105 of file SpliceDDSTransport.h.
|
static |
Definition at line 32 of file SpliceDDSTransport.h.
|
private |
Definition at line 110 of file SpliceDDSTransport.h.
|
private |
Definition at line 118 of file SpliceDDSTransport.h.
|
private |
threads for reading knowledge updates
Definition at line 102 of file SpliceDDSTransport.h.
|
protectedinherited |
monitor for receiving bandwidth usage
Definition at line 203 of file Transport.h.
|
staticprivate |
Definition at line 106 of file SpliceDDSTransport.h.
|
protectedinherited |
monitor for sending bandwidth usage
Definition at line 200 of file Transport.h.
|
protectedinherited |
Definition at line 188 of file Transport.h.
|
protectedinherited |
Definition at line 180 of file Transport.h.
|
private |
Definition at line 112 of file SpliceDDSTransport.h.
|
private |
Definition at line 119 of file SpliceDDSTransport.h.
|
staticprivate |
Definition at line 104 of file SpliceDDSTransport.h.
|
private |
Definition at line 109 of file SpliceDDSTransport.h.
|
private |
Definition at line 126 of file SpliceDDSTransport.h.
|
private |
Definition at line 129 of file SpliceDDSTransport.h.
|
private |
Definition at line 127 of file SpliceDDSTransport.h.
|
private |
Definition at line 124 of file SpliceDDSTransport.h.
|
protectedinherited |
Definition at line 183 of file Transport.h.