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 ) [inline, virtual]
 

Destructor.


Member Function Documentation

int ACE_RMCast_Receiver_Module::ack ( ACE_RMCast::Ack & 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 & 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 & 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 & data ) [virtual]
 

Push data through the stack.

Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Receiver_Module::join ( ACE_RMCast::Join & join ) [virtual]
 

Push a join message through the stack.

Reimplemented from ACE_RMCast_Module.

int ACE_RMCast_Receiver_Module::leave ( ACE_RMCast::Leave & 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 & 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 at Wed Nov 21 10:46:06 2001 for ACE_RMCast by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000