Helper class for vrpn_Connection that automates redundant transmission for unreliable (low-latency) messages. Call pack_messages() here instead of on your connection, and call mainloop() here before calling mainloop() on your connection. More...
#include <vrpn_RedundantTransmission.h>
Classes | |
struct | queuedMessage |
Public Member Functions | |
vrpn_RedundantTransmission (vrpn_Connection *c) | |
virtual | ~vrpn_RedundantTransmission (void) |
vrpn_uint32 | defaultRetransmissions (void) const |
timeval | defaultInterval (void) const |
vrpn_bool | isEnabled (void) const |
virtual void | mainloop (void) |
Determines which messages need to be resent and queues them up on the connection for transmission. | |
void | enable (vrpn_bool) |
virtual void | setDefaults (vrpn_uint32 numRetransmissions, timeval transmissionInterval) |
Set default values for future calls to pack_message(). | |
virtual int | pack_message (vrpn_uint32 len, timeval time, vrpn_uint32 type, vrpn_uint32 sender, const char *buffer, vrpn_uint32 class_of_service, vrpn_int32 numRetransmissions=-1, timeval *transmissionInterval=NULL) |
If !isEnabled(), does a normal pack_message(), but if isEnabled() ignores class_of_service and sends it vrpn_CONNECTION_LOW_LATENCY, sending it an additional number of times equal to numRetransmissions at minimum intervals of transmissionInterval. Specify -1 and NULL to use default values. | |
Protected Attributes | |
vrpn_Connection * | d_connection |
queuedMessage * | d_messageList |
vrpn_uint32 | d_numMessagesQueued |
For debugging, mostly. | |
vrpn_uint32 | d_numTransmissions |
timeval | d_transmissionInterval |
vrpn_bool | d_isEnabled |
Helper class for vrpn_Connection that automates redundant transmission for unreliable (low-latency) messages. Call pack_messages() here instead of on your connection, and call mainloop() here before calling mainloop() on your connection.
Definition at line 20 of file vrpn_RedundantTransmission.h.
vrpn_RedundantTransmission::vrpn_RedundantTransmission | ( | vrpn_Connection * | c | ) |
Definition at line 8 of file vrpn_RedundantTransmission.C.
References d_connection, d_isEnabled, d_messageList, d_numMessagesQueued, d_numTransmissions, and d_transmissionInterval.
|
virtual |
Definition at line 24 of file vrpn_RedundantTransmission.C.
References d_connection.
timeval vrpn_RedundantTransmission::defaultInterval | ( | void | ) | const |
Definition at line 37 of file vrpn_RedundantTransmission.C.
References d_transmissionInterval.
vrpn_uint32 vrpn_RedundantTransmission::defaultRetransmissions | ( | void | ) | const |
Definition at line 32 of file vrpn_RedundantTransmission.C.
References d_numTransmissions.
void vrpn_RedundantTransmission::enable | ( | vrpn_bool | on | ) |
Definition at line 103 of file vrpn_RedundantTransmission.C.
References d_isEnabled.
Referenced by vrpn_RedundantController::handle_enable().
vrpn_bool vrpn_RedundantTransmission::isEnabled | ( | void | ) | const |
Definition at line 42 of file vrpn_RedundantTransmission.C.
References d_isEnabled.
|
virtual |
Determines which messages need to be resent and queues them up on the connection for transmission.
Definition at line 48 of file vrpn_RedundantTransmission.C.
References vrpn_HANDLERPARAM::buffer, d_connection, d_messageList, d_numMessagesQueued, vrpn_HANDLERPARAM::msg_time, vrpn_RedundantTransmission::queuedMessage::next, vrpn_RedundantTransmission::queuedMessage::nextValidTime, vrpn_RedundantTransmission::queuedMessage::p, vrpn_HANDLERPARAM::payload_len, vrpn_RedundantTransmission::queuedMessage::remainingTransmissions, vrpn_HANDLERPARAM::sender, vrpn_RedundantTransmission::queuedMessage::transmissionInterval, vrpn_HANDLERPARAM::type, vrpn_CONNECTION_LOW_LATENCY, vrpn_gettimeofday, vrpn_TimevalGreater(), and vrpn_TimevalSum().
|
virtual |
If !isEnabled(), does a normal pack_message(), but if isEnabled() ignores class_of_service and sends it vrpn_CONNECTION_LOW_LATENCY, sending it an additional number of times equal to numRetransmissions at minimum intervals of transmissionInterval. Specify -1 and NULL to use default values.
Definition at line 124 of file vrpn_RedundantTransmission.C.
References vrpn_HANDLERPARAM::buffer, d_connection, d_isEnabled, d_messageList, d_numMessagesQueued, d_numTransmissions, d_transmissionInterval, vrpn_HANDLERPARAM::msg_time, vrpn_RedundantTransmission::queuedMessage::next, vrpn_RedundantTransmission::queuedMessage::nextValidTime, vrpn_RedundantTransmission::queuedMessage::p, vrpn_HANDLERPARAM::payload_len, vrpn_RedundantTransmission::queuedMessage::remainingTransmissions, vrpn_HANDLERPARAM::sender, vrpn_RedundantTransmission::queuedMessage::transmissionInterval, vrpn_HANDLERPARAM::type, vrpn_CONNECTION_LOW_LATENCY, and vrpn_TimevalSum().
|
virtual |
Set default values for future calls to pack_message().
Definition at line 111 of file vrpn_RedundantTransmission.C.
References d_numTransmissions, and d_transmissionInterval.
Referenced by vrpn_RedundantController::handle_set().
|
protected |
Definition at line 56 of file vrpn_RedundantTransmission.h.
Referenced by mainloop(), pack_message(), vrpn_RedundantTransmission(), and ~vrpn_RedundantTransmission().
|
protected |
Definition at line 75 of file vrpn_RedundantTransmission.h.
Referenced by enable(), isEnabled(), pack_message(), and vrpn_RedundantTransmission().
|
protected |
Definition at line 66 of file vrpn_RedundantTransmission.h.
Referenced by mainloop(), pack_message(), and vrpn_RedundantTransmission().
|
protected |
For debugging, mostly.
Definition at line 67 of file vrpn_RedundantTransmission.h.
Referenced by mainloop(), pack_message(), and vrpn_RedundantTransmission().
|
protected |
Definition at line 72 of file vrpn_RedundantTransmission.h.
Referenced by defaultRetransmissions(), pack_message(), setDefaults(), and vrpn_RedundantTransmission().
|
protected |
Definition at line 73 of file vrpn_RedundantTransmission.h.
Referenced by defaultInterval(), pack_message(), setDefaults(), and vrpn_RedundantTransmission().