TCP-based transport (skeleton code)
More...
#include <TcpTransport.h>
TCP-based transport (skeleton code)
Definition at line 19 of file TcpTransport.h.
Used to define a vector of hosts to contact.
Definition at line 68 of file Transport.h.
Constructor.
- Parameters
-
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 14 of file TcpTransport.cpp.
madara::transport::TcpTransport::~TcpTransport |
( |
| ) |
|
|
virtual |
int madara::transport::Base::check_transport |
( |
void |
| ) |
|
|
inlineinherited |
all subclasses should call this method at the beginning of send_data
Definition at line 19 of file Transport.inl.
void madara::transport::TcpTransport::close |
( |
void |
| ) |
|
|
virtual |
void madara::transport::Base::invalidate_transport |
( |
void |
| ) |
|
|
inlineinherited |
Invalidates a transport to indicate it is shutting down.
Definition at line 34 of file Transport.inl.
Preps a message for sending.
- Parameters
-
orig_updates | updates before send filtering is applied |
print_prefix | prefix to include before every log message, e.g., "MyTransport::svc" |
- Returns
- -1 Transport is shutting down
-2 Transport is invalid
-3 Unable to allocate send buffer
0 No message to send > 0 size of buffered message
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.
long madara::transport::TcpTransport::read |
( |
void |
| ) |
|
int madara::transport::TcpTransport::reliability |
( |
void |
| ) |
const |
Accesses reliability setting.
If this returns zero, it doesn't make much sense.
- Returns
- whether we are using reliable dissemination or not
Definition at line 45 of file TcpTransport.cpp.
int madara::transport::TcpTransport::reliability |
( |
const int & |
setting | ) |
|
Accesses reliability setting.
If this returns zero, it doesn't make much sense.
- Returns
- whether we are using reliable dissemination or not
Definition at line 51 of file TcpTransport.cpp.
Sends a list of knowledge updates to listeners.
- Parameters
-
updates | listing of all updates that must be sent |
- Returns
- result of write operation or -1 if we are shutting down
Implements madara::transport::Base.
Definition at line 140 of file TcpTransport.cpp.
Getter for the transport settings.
- Returns
- the current transport settings
Definition at line 45 of file Transport.inl.
int madara::transport::TcpTransport::setup |
( |
void |
| ) |
|
|
virtual |
int madara::transport::Base::validate_transport |
( |
void |
| ) |
|
|
inlineinherited |
Validates a transport to indicate it is not shutting down.
Definition at line 6 of file Transport.inl.
std::map<std::string, ACE_INET_Addr> madara::transport::TcpTransport::addresses_ |
|
private |
const std::string madara::transport::Base::id_ |
|
protectedinherited |
host:port identifier of this process
Definition at line 186 of file Transport.h.
volatile bool madara::transport::Base::is_valid_ |
|
protectedinherited |
ACE_Thread_Mutex madara::transport::Base::mutex_ |
|
protectedinherited |
data received rules, defined in Transport settings
Definition at line 195 of file Transport.h.
scheduler for dropping packets to simulate network issues
Definition at line 206 of file Transport.h.
const int madara::transport::TcpTransport::PROFILES = 1 |
|
static |
threads for reading knowledge updates
Definition at line 78 of file TcpTransport.h.
monitor for receiving bandwidth usage
Definition at line 203 of file Transport.h.
monitor for sending bandwidth usage
Definition at line 200 of file Transport.h.
volatile bool madara::transport::Base::shutting_down_ |
|
protectedinherited |
Condition madara::transport::Base::valid_setup_ |
|
protectedinherited |
The documentation for this class was generated from the following files: