Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# ACE_RMCast_Retransmission Class Reference

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. More...

`#include <RMCast_Retransmission.h>`

Inheritance diagram for ACE_RMCast_Retransmission:

[legend]
Collaboration diagram for ACE_RMCast_Retransmission:

[legend]
List of all members.

## 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)
| Resends all the messages up to. More...
int | resend_all (void)
| Resends all the messages currently in the queue. 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)
| 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. More...
virtual int | ack (ACE_RMCast::Ack &)
| Normally this Ack message will be a summary of all the Ack messages received by the ACE_RMCast_Membership class. More...
virtual int | join (ACE_RMCast::Join &)
| When a new receiver joins the group this module sends an Ack_Join message with the next sequence number that the receiver should expect. More...
virtual int | leave (ACE_RMCast::Leave &)
| 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. More...
## Protected Attributes
Messages | messages_
| The retransmission buffer. More...

## Detailed Description

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.

## Member Typedef Documentation

typedef ACE_RB_Tree<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex> ACE_RMCast_Retransmission::Collection

| Use a Red-Black Tree to keep the queue of messages.

typedef ACE_RB_Tree_Iterator<ACE_UINT32,ACE_RMCast::Data,ACE_Less_Than<ACE_UINT32>,ACE_Null_Mutex> ACE_RMCast_Retransmission::Collection_Iterator

typedef ACE_RMCast_Copy_On_Write<ACE_UINT32,ACE_RMCast::Data,Collection,Collection_Iterator> ACE_RMCast_Retransmission::Messages

| The messages are stored in the Copy_On_Write wrapper to provide an efficient, but thread safe interface.

## Constructor & Destructor Documentation

ACE_INLINE ACE_RMCast_Retransmission::ACE_RMCast_Retransmission | ( | void |  | ) |

| Constructor.

ACE_RMCast_Retransmission::~ACE_RMCast_Retransmission | ( | void |  | ) | `[virtual]`

| Destructor.

## Member Function Documentation

int ACE_RMCast_Retransmission::ack | ( | ACE_RMCast::Ack & | ack | ) | `[virtual]`

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

int ACE_RMCast_Retransmission::close | ( | void |  | ) | `[virtual]`

| Cleanup all the stored messages. Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Retransmission::data | ( | ACE_RMCast::Data & | data | ) | `[virtual]`

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

int ACE_RMCast_Retransmission::has_data | ( | void |  | ) |

| Return 0 if there is no pending data to send.

int ACE_RMCast_Retransmission::join | ( | ACE_RMCast::Join & | join | ) | `[virtual]`

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

int ACE_RMCast_Retransmission::leave | ( | ACE_RMCast::Leave & | leave | ) | `[virtual]`

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

int ACE_RMCast_Retransmission::resend | ( | ACE_UINT32 | max_sequence_number | ) |

  | Resends all the messages up to. Parameters:
  max_sequence_number | Returns the number of messages sent, or -1 if there where any errors.

int ACE_RMCast_Retransmission::resend_all | ( | void |  | ) |

| Resends all the messages currently in the queue.

## Member Data Documentation

Messages ACE_RMCast_Retransmission::messages_`[protected]`

| The retransmission buffer.

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

- RMCast_Retransmission.h
- RMCast_Retransmission.cpp
- RMCast_Retransmission.i