MADARA  3.1.8
madara::transport::UdpRegistryServerReadThread Class Reference

Thread for reading registry updates through a UDP socket. More...

#include <UdpRegistryServerReadThread.h>

Inheritance diagram for madara::transport::UdpRegistryServerReadThread:
Collaboration diagram for madara::transport::UdpRegistryServerReadThread:

Public Member Functions

 UdpRegistryServerReadThread (const TransportSettings &settings, const std::string &id, std::map< std::string, ACE_INET_Addr > &addresses, ACE_SOCK_Dgram &write_socket, ACE_SOCK_Dgram &read_socket, BandwidthMonitor &send_monitor, BandwidthMonitor &receive_monitor, PacketScheduler &packet_scheduler)
 Constructor. More...
 
void cleanup (void)
 Cleanup function called by thread manager. More...
 
void init (knowledge::KnowledgeBase &knowledge)
 Initializes MADARA context-related items. More...
 
void rebroadcast (const char *print_prefix, MessageHeader *header, const knowledge::KnowledgeMap &records)
 Sends a rebroadcast packet to all peers. More...
 
void run (void)
 The main loop internals for the read thread. More...
 

Protected Member Functions

virtual void init_control_vars (knowledge::KnowledgeBase &control)
 Initializes the Java thread implementation's control plane variables. More...
 

Protected Attributes

std::string name
 The unique name of your thread. More...
 
madara::knowledge::containers::Integer paused
 thread safe paused flag that may be set by the Threader More...
 
madara::knowledge::containers::Integer terminated
 thread safe terminated flag that may be set by the Threader base More...
 

Private Attributes

std::map< std::string, ACE_INET_Addr > & addresses_
 internet addresses of our peers More...
 
madara::utility::ScopedArray< char > buffer_
 buffer for sending More...
 
knowledge::ThreadSafeContextcontext_
 knowledge context More...
 
const std::string id_
 host:port identifier of this process More...
 
madara::knowledge::CompiledExpression on_data_received_
 data received rules, defined in Transport settings More...
 
PacketSchedulerpacket_scheduler_
 scheduler for mimicking target network conditions More...
 
ACE_SOCK_Dgram & read_socket_
 The socket we are reading from. More...
 
BandwidthMonitorreceive_monitor_
 monitor for receiving bandwidth usage More...
 
BandwidthMonitorsend_monitor_
 monitor for sending bandwidth usage More...
 
const QoSTransportSettings settings_
 Transport settings. More...
 
ACE_SOCK_Dgram & write_socket_
 The socket we are writing to. More...
 

Detailed Description

Thread for reading registry updates through a UDP socket.

Definition at line 33 of file UdpRegistryServerReadThread.h.

Constructor & Destructor Documentation

madara::transport::UdpRegistryServerReadThread::UdpRegistryServerReadThread ( const TransportSettings settings,
const std::string &  id,
std::map< std::string, ACE_INET_Addr > &  addresses,
ACE_SOCK_Dgram &  write_socket,
ACE_SOCK_Dgram &  read_socket,
BandwidthMonitor send_monitor,
BandwidthMonitor receive_monitor,
PacketScheduler packet_scheduler 
)

Constructor.

Parameters
settingsTransport settings
idhost:port identifier of this process, to allow for rejection of duplicates
addressesthe ACE socket addresses to communicate with
write_socketsocket for sending
read_socketsocket for receiving
send_monitorbandwidth monitor for enforcing send limits
receive_monitorbandwidth monitor for enforcing receive limits
packet_schedulerscheduler for mimicking network conditions

Definition at line 9 of file UdpRegistryServerReadThread.cpp.

Member Function Documentation

void madara::transport::UdpRegistryServerReadThread::cleanup ( void  )
virtual

Cleanup function called by thread manager.

Reimplemented from madara::threads::BaseThread.

Definition at line 322 of file UdpRegistryServerReadThread.cpp.

void madara::transport::UdpRegistryServerReadThread::init ( knowledge::KnowledgeBase knowledge)
virtual

Initializes MADARA context-related items.

Parameters
knowledgecontext for querying current program state

Reimplemented from madara::threads::BaseThread.

Definition at line 31 of file UdpRegistryServerReadThread.cpp.

virtual void madara::threads::BaseThread::init_control_vars ( knowledge::KnowledgeBase control)
inlineprotectedvirtualinherited

Initializes the Java thread implementation's control plane variables.

Parameters
controlthe control plane between Threader and threads

Reimplemented in madara::threads::JavaThread.

Definition at line 86 of file BaseThread.h.

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

Sends a rebroadcast packet to all peers.

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 66 of file UdpRegistryServerReadThread.cpp.

void madara::transport::UdpRegistryServerReadThread::run ( void  )
virtual

The main loop internals for the read thread.

Implements madara::threads::BaseThread.

Definition at line 328 of file UdpRegistryServerReadThread.cpp.

Member Data Documentation

std::map<std::string, ACE_INET_Addr>& madara::transport::UdpRegistryServerReadThread::addresses_
private

internet addresses of our peers

Definition at line 99 of file UdpRegistryServerReadThread.h.

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

buffer for sending

Definition at line 113 of file UdpRegistryServerReadThread.h.

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

knowledge context

Definition at line 96 of file UdpRegistryServerReadThread.h.

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

host:port identifier of this process

Definition at line 93 of file UdpRegistryServerReadThread.h.

std::string madara::threads::BaseThread::name
protectedinherited

The unique name of your thread.

Definition at line 96 of file BaseThread.h.

madara::knowledge::CompiledExpression madara::transport::UdpRegistryServerReadThread::on_data_received_
private

data received rules, defined in Transport settings

Definition at line 109 of file UdpRegistryServerReadThread.h.

PacketScheduler& madara::transport::UdpRegistryServerReadThread::packet_scheduler_
private

scheduler for mimicking target network conditions

Definition at line 122 of file UdpRegistryServerReadThread.h.

madara::knowledge::containers::Integer madara::threads::BaseThread::paused
protectedinherited

thread safe paused flag that may be set by the Threader

Definition at line 107 of file BaseThread.h.

ACE_SOCK_Dgram& madara::transport::UdpRegistryServerReadThread::read_socket_
private

The socket we are reading from.

Definition at line 105 of file UdpRegistryServerReadThread.h.

BandwidthMonitor& madara::transport::UdpRegistryServerReadThread::receive_monitor_
private

monitor for receiving bandwidth usage

Definition at line 119 of file UdpRegistryServerReadThread.h.

BandwidthMonitor& madara::transport::UdpRegistryServerReadThread::send_monitor_
private

monitor for sending bandwidth usage

Definition at line 116 of file UdpRegistryServerReadThread.h.

const QoSTransportSettings madara::transport::UdpRegistryServerReadThread::settings_
private

Transport settings.

Definition at line 90 of file UdpRegistryServerReadThread.h.

madara::knowledge::containers::Integer madara::threads::BaseThread::terminated
protectedinherited

thread safe terminated flag that may be set by the Threader base

Definition at line 102 of file BaseThread.h.

ACE_SOCK_Dgram& madara::transport::UdpRegistryServerReadThread::write_socket_
private

The socket we are writing to.

Definition at line 102 of file UdpRegistryServerReadThread.h.


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