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: