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

ACE_RMCast_Receiver_Module Class Reference

Keep track of the receiver module. More...

#include <RMCast_Receiver_Module.h>

Inheritance diagram for ACE_RMCast_Receiver_Module:

Inheritance graph
[legend]
Collaboration diagram for ACE_RMCast_Receiver_Module:

Collaboration graph
[legend]
List of all members.

Public Types

enum  Receiver_State { RS_NON_EXISTENT, RS_JOINING, RS_JOINED, RS_LEAVING }
 Simple enum used to describe the receiver state transitions. More...


Public Methods

 ACE_RMCast_Receiver_Module (void)
 Constructor.

virtual ~ACE_RMCast_Receiver_Module (void)
 Destructor.

virtual int data (ACE_RMCast::Data &)
 Push data through the stack.

virtual int poll (ACE_RMCast::Poll &)
 Push a polling request through the stack.

virtual int ack_join (ACE_RMCast::Ack_Join &)
 Push a message to ack a join request through the stack.

virtual int ack_leave (ACE_RMCast::Ack_Leave &)
 Push a message to ack a leave request through the stack.

virtual int ack (ACE_RMCast::Ack &)
 Push an ack mesage through the stack.

virtual int join (ACE_RMCast::Join &)
 Push a join message through the stack.

virtual int leave (ACE_RMCast::Leave &)
 Push a leave message through the stack.


Private Methods

void leaving (ACE_RMCast_Proxy *proxy)
 Enter the leaving state, prepare for termination.


Private Attributes

int state_
 The current state of the receiver.


Detailed Description

Keep track of the receiver module.

A receiver proxy must reject invalid messages and communicate with the sender to join and leave the multicast group.

This module performs all the task related to


Member Enumeration Documentation

enum ACE_RMCast_Receiver_Module::Receiver_State
 

Simple enum used to describe the receiver state transitions.

Receivers go through several states before they can fully accept messages, the following comments describe those states, as well as the possible transitions This configuration is pesimistic, any invalid message is cause enough to reclaim all the resources. This partially addresses situations where either accidentally or intentionally a sender is multicasting packets to the wrong group.

NON_EXISTENT JOINING JOINED LEAVING
----------------------------------------------------------------

DATA JOINING JOINING JOINED LEAVING
Send/Join Send/Join Recv/Data Send/Leave

POLL JOINING JOINING JOINED LEAVING
Send/Join Send/Join Send/Ack Send/Leave

ACK_JOIN JOINING JOINED JOINED LEAVING
Send/Join Receive Msg Receive Msg Send/Leave

ACK_LEAVE NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT
Noop Destroy Destroy Destroy

ACK NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT
Noop Destroy Destroy Destroy

JOIN NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT
Noop Destroy Destroy Destroy

LEAVE NON_EXISTENT NON_EXISTENT NON_EXISTENT NON_EXISTENT
Noop Destroy Destroy Destroy

Enumeration values:
RS_NON_EXISTENT 
RS_JOINING 
RS_JOINED 
RS_LEAVING 


Constructor & Destructor Documentation

ACE_INLINE ACE_RMCast_Receiver_Module::ACE_RMCast_Receiver_Module void   
 

Constructor.

ACE_RMCast_Receiver_Module::~ACE_RMCast_Receiver_Module void    [virtual]
 

Destructor.


Member Function Documentation

int ACE_RMCast_Receiver_Module::ack ACE_RMCast::Ack   [virtual]
 

Push an ack mesage through the stack.

Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Receiver_Module::ack_join ACE_RMCast::Ack_Join   [virtual]
 

Push a message to ack a join request through the stack.

Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Receiver_Module::ack_leave ACE_RMCast::Ack_Leave   [virtual]
 

Push a message to ack a leave request through the stack.

Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Receiver_Module::data ACE_RMCast::Data   [virtual]
 

Push data through the stack.

Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Receiver_Module::join ACE_RMCast::Join   [virtual]
 

Push a join message through the stack.

Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Receiver_Module::leave ACE_RMCast::Leave   [virtual]
 

Push a leave message through the stack.

Reimplemented from ACE_RMCast_Module.

void ACE_RMCast_Receiver_Module::leaving ACE_RMCast_Proxy   proxy [private]
 

Enter the leaving state, prepare for termination.

int ACE_RMCast_Receiver_Module::poll ACE_RMCast::Poll   [virtual]
 

Push a polling request through the stack.

Reimplemented from ACE_RMCast_Module.


Member Data Documentation

int ACE_RMCast_Receiver_Module::state_ [private]
 

The current state of the receiver.


The documentation for this class was generated from the following files:
Generated on Wed Jan 14 22:58:29 2004 for ACE_RMCast by doxygen1.2.18