UDP-based server that handles a registry of UDP endpoints, which makes it ideal for any NAT-protected agents.
More...
#include <UdpRegistryServer.h>
UDP-based server that handles a registry of UDP endpoints, which makes it ideal for any NAT-protected agents.
Definition at line 28 of file UdpRegistryServer.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 UdpRegistryServer.cpp.
madara::transport::UdpRegistryServer::~UdpRegistryServer |
( |
| ) |
|
|
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::UdpRegistryServer::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::UdpRegistryServer::read |
( |
void |
| ) |
|
int madara::transport::UdpRegistryServer::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 63 of file UdpRegistryServer.cpp.
int madara::transport::UdpRegistryServer::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 69 of file UdpRegistryServer.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 260 of file UdpRegistryServer.cpp.
Getter for the transport settings.
- Returns
- the current transport settings
Definition at line 45 of file Transport.inl.
int madara::transport::UdpRegistryServer::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::UdpRegistryServer::clients_ |
|
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::UdpRegistryServer::PROFILES = 1 |
|
static |
ACE_SOCK_Dgram madara::transport::UdpRegistryServer::read_socket_ |
|
private |
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.
std::map<std::string, ACE_INET_Addr> madara::transport::UdpRegistryServer::servers_ |
|
private |
volatile bool madara::transport::Base::shutting_down_ |
|
protectedinherited |
Condition madara::transport::Base::valid_setup_ |
|
protectedinherited |
ACE_SOCK_Dgram madara::transport::UdpRegistryServer::write_socket_ |
|
private |
The documentation for this class was generated from the following files: