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:

Inheritance graph
[legend]
Collaboration diagram for ACE_RMCast_Retransmission:

Collaboration graph
[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:
Generated on Fri Nov 22 06:13:20 2002 for ACE_RMCast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001