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

ACE_RMCast_Module Class Reference

Reliable Multicast Module. More...

#include <RMCast_Module.h>

Inheritance diagram for ACE_RMCast_Module:

Inheritance graph
[legend]
Collaboration diagram for ACE_RMCast_Module:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_RMCast_Module (void)
 Constructor. More...

virtual ~ACE_RMCast_Module (void)
 Destructor. More...

virtual int next (ACE_RMCast_Module *next)
 Modifier for the next element in the stack. More...

virtual ACE_RMCast_Module * next (void) const
 Accesor for the next element in the stack. More...

virtual int open (void)
 Initialize the module, setting up the next module. More...

virtual int close (void)
 Close the module. More...

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

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

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

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

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

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

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


Private Attributes

ACE_RMCast_Module * next_
 The next element in the stack. More...


Detailed Description

Reliable Multicast Module.

The reliable multicast protocol is implemented as a stack of "Modules" each one performing one specific task. In short, this is an instance of the pipes-and-filters architectural pattern.

Definition at line 36 of file RMCast_Module.h.


Constructor & Destructor Documentation

ACE_INLINE ACE_RMCast_Module::ACE_RMCast_Module void   
 

Constructor.

Definition at line 4 of file RMCast_Module.i.

00005   :  next_ (0)
00006 {
00007 }

ACE_RMCast_Module::~ACE_RMCast_Module void    [virtual]
 

Destructor.

Definition at line 13 of file RMCast_Module.cpp.

00014 {
00015 }


Member Function Documentation

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

Push an ack mesage through the stack.

Reimplemented in ACE_RMCast_Fork.

Definition at line 81 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Proxy::ack, ACE_RMCast_Membership::ack, ACE_RMCast_Fork::ack, ACE_RMCast_Reordering::data, and ACE_RMCast_Membership::generate_ack.

00082 {
00083   if (this->next () != 0)
00084     return this->next ()->ack (ack);
00085   return 0;
00086 }

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

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

Reimplemented in ACE_RMCast_Fork.

Definition at line 65 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Receiver_Module::ack_join, ACE_RMCast_Fork::ack_join, ACE_RMCast_Retransmission::join, and ACE_RMCast_UDP_Proxy::receive_message.

00066 {
00067   if (this->next () != 0)
00068     return this->next ()->ack_join (ack_join);
00069   return 0;
00070 }

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

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

Reimplemented in ACE_RMCast_Fork.

Definition at line 73 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Receiver_Module::ack_leave, ACE_RMCast_Fork::ack_leave, ACE_RMCast_Retransmission::leave, and ACE_RMCast_UDP_Proxy::receive_message.

00074 {
00075   if (this->next () != 0)
00076     return this->next ()->ack_leave (ack_leave);
00077   return 0;
00078 }

int ACE_RMCast_Module::close void    [virtual]
 

Close the module.

Reimplemented in ACE_RMCast_Fork.

Definition at line 41 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Reordering::close, ACE_RMCast_Reassembly::close, ACE_RMCast_Fork::close, and ACE_RMCast_Receiver_Module::leaving.

00042 {
00043   if (this->next () != 0)
00044     return this->next ()->close ();
00045   return 0;
00046 }

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

Push data through the stack.

Reimplemented in ACE_RMCast_Fork.

Definition at line 49 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Sequencer::data, ACE_RMCast_Retransmission::data, ACE_RMCast_Reordering::data, ACE_RMCast_Receiver_Module::data, ACE_RMCast_Reassembly::data, ACE_RMCast_Fragment::data, ACE_RMCast_Fork::data, ACE_RMCast_Reordering::push_queued_messages, ACE_RMCast_UDP_Proxy::receive_message, and ACE_RMCast_Resend_Worker::work.

00050 {
00051   if (this->next () != 0)
00052     return this->next ()->data (data);
00053   return 0;
00054 }

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

Push a join message through the stack.

Reimplemented in ACE_RMCast_Fork.

Definition at line 89 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Membership::join, ACE_RMCast_Fork::join, and ACE_RMCast_UDP_Proxy::receive_message.

00090 {
00091   if (this->next () != 0)
00092     return this->next ()->join (join);
00093   return 0;
00094 }

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

Push a leave message through the stack.

Reimplemented in ACE_RMCast_Fork.

Definition at line 97 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Membership::leave, ACE_RMCast_Fork::leave, and ACE_RMCast_UDP_Proxy::receive_message.

00098 {
00099   if (this->next () != 0)
00100     return this->next ()->leave (leave);
00101   return 0;
00102 }

ACE_RMCast_Module * ACE_RMCast_Module::next void    const [virtual]
 

Accesor for the next element in the stack.

Definition at line 27 of file RMCast_Module.cpp.

References next_.

Referenced by ACE_RMCast_UDP_Reliable_Sender::ACE_RMCast_UDP_Reliable_Sender, ack, ack_join, ack_leave, close, ACE_RMCast_Retransmission::data, ACE_RMCast_Reordering::data, ACE_RMCast_Reassembly::data, data, ACE_RMCast_Fragment::data, join, leave, open, poll, ACE_RMCast_Reordering::push_queued_messages, ACE_RMCast_Retransmission::resend, and ACE_RMCast_Retransmission::resend_all.

00028 {
00029   return this->next_;
00030 }

int ACE_RMCast_Module::next ACE_RMCast_Module *    next [virtual]
 

Modifier for the next element in the stack.

Definition at line 18 of file RMCast_Module.cpp.

References next_.

Referenced by ACE_RMCast_UDP_Reliable_Sender::ACE_RMCast_UDP_Reliable_Sender, ACE_RMCast_IO_UDP::allocate_and_bind_proxy, ACE_RMCast_Reliable_Factory::create, ACE_RMCast_Reliable_Factory::destroy, and ACE_RMCast_IO_UDP::handle_input.

00019 {
00020   if (this->next_ != 0 && next != 0)
00021     return 1;
00022   this->next_ = next;
00023   return 0;
00024 }

int ACE_RMCast_Module::open void    [virtual]
 

Initialize the module, setting up the next module.

Reimplemented in ACE_RMCast_Fork.

Definition at line 33 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Fork::open.

00034 {
00035   if (this->next () != 0)
00036     return this->next ()->open ();
00037   return 0;
00038 }

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

Push a polling request through the stack.

Reimplemented in ACE_RMCast_Fork.

Definition at line 57 of file RMCast_Module.cpp.

References next.

Referenced by ACE_RMCast_Receiver_Module::poll, ACE_RMCast_Fork::poll, and ACE_RMCast_UDP_Proxy::receive_message.

00058 {
00059   if (this->next () != 0)
00060     return this->next ()->poll (poll);
00061   return 0;
00062 }


Member Data Documentation

ACE_RMCast_Module* ACE_RMCast_Module::next_ [private]
 

The next element in the stack.

Definition at line 80 of file RMCast_Module.h.

Referenced by next.


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 13:14:05 2003 for ACE_RMCast by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002