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().