#include <RMCast_Retransmission.h>
Inheritance diagram for ACE_RMCast_Retransmission:


Public Types | |
| typedef ACE_RB_Tree< ACE_UINT32, ACE_RMCast::Data, ACE_Less_Than< ACE_UINT32 >, ACE_Null_Mutex > | Collection |
| Use a Red-Black Tree to keep the queue of messages. More... | |
| typedef ACE_RB_Tree_Iterator< ACE_UINT32, ACE_RMCast::Data, ACE_Less_Than< ACE_UINT32 >, ACE_Null_Mutex > | Collection_Iterator |
| typedef ACE_RMCast_Copy_On_Write< ACE_UINT32, ACE_RMCast::Data, Collection, Collection_Iterator > | Messages |
| The messages are stored in the Copy_On_Write wrapper to provide an efficient, but thread safe interface. More... | |
Public Methods | |
| ACE_RMCast_Retransmission (void) | |
| Constructor. More... | |
| virtual | ~ACE_RMCast_Retransmission (void) |
| Destructor. More... | |
| int | resend (ACE_UINT32 max_sequence_number) |
| Resend messages. More... | |
| int | resend_all (void) |
| Resend all messages. More... | |
| int | has_data (void) |
| Return 0 if there is no pending data to send. More... | |
| virtual int | close (void) |
| Cleanup all the stored messages. More... | |
| virtual int | data (ACE_RMCast::Data &data) |
| Pass the message downstream, but also save it in the retransmission queue. More... | |
| virtual int | ack (ACE_RMCast::Ack &) |
| Process an Ack message from the remote receivers. More... | |
| virtual int | join (ACE_RMCast::Join &) |
| Detect when new members join the group and Ack_Join them. More... | |
| virtual int | leave (ACE_RMCast::Leave &) |
| A receiver is leaving. More... | |
Protected Attributes | |
| Messages | messages_ |
| The retransmission buffer. More... | |
Reliable configurations of the RMCast framework need to store messages on the sender side to resend them if one or more clients do not receive them successfully.
|
|
Use a Red-Black Tree to keep the queue of messages.
|
|
|
|
|
|
The messages are stored in the Copy_On_Write wrapper to provide an efficient, but thread safe interface.
|
|
|
Constructor.
|
|
|
Destructor.
|
|
|
Process an Ack message from the remote receivers. Normally this Ack message will be a summary of all the Ack messages received by the ACE_RMCast_Membership class Reimplemented from ACE_RMCast_Module. |
|
|
Cleanup all the stored messages.
Reimplemented from ACE_RMCast_Module. |
|
|
Pass the message downstream, but also save it in the retransmission queue. Sequence number are assigned by the ACE_RMCast_Fragmentation class, consequently this class first passes the message downstream, to obtain the sequence number and then stores the message for later retransmission. Reimplemented from ACE_RMCast_Module. |
|
|
Return 0 if there is no pending data to send.
|
|
|
Detect when new members join the group and Ack_Join them. When a new receiver joins the group this module sends an Ack_Join message with the next sequence number that the receiver should expect. The sequence number is obtained from the current list of cached messages. Reimplemented from ACE_RMCast_Module. |
|
|
A receiver is leaving. Normally the ACE_RMCast_Membership module could do this, but, because this module processes the Join messages, it seems more natural to process the Leave messages too. Reimplemented from ACE_RMCast_Module. |
|
|
Resend messages. Resends all the messages up to
|
|
|
Resend all messages. Resends all the messages currently in the queue. |
|
|
The retransmission buffer.
|
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001