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

ACE_RMCast_Proxy Class Reference

Local representation for remote peers. More...

#include <RMCast_Proxy.h>

Inheritance diagram for ACE_RMCast_Proxy:

Inheritance graph
[legend]
Collaboration diagram for ACE_RMCast_Proxy:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_RMCast_Proxy (void)
 Constructor. More...

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

virtual ACE_UINT32 next_expected (void) const
 Return the next sequence number expected by the peer. Only applies to remote receiver proxies. More...

virtual ACE_UINT32 highest_received (void) const
 Return the highest sequence number successfully received. Only applies to remote receiver proxies. More...

virtual int ack (ACE_RMCast::Ack &)
virtual int reply_data (ACE_RMCast::Data &)=0
 Send messages directly to the peer. More...

virtual int reply_poll (ACE_RMCast::Poll &)=0
 Send messages directly to the peer. More...

virtual int reply_ack_join (ACE_RMCast::Ack_Join &)
 Send messages directly to the peer. More...

virtual int reply_ack_leave (ACE_RMCast::Ack_Leave &)=0
 Send messages directly to the peer. More...

virtual int reply_ack (ACE_RMCast::Ack &)=0
 Send messages directly to the peer. More...

virtual int reply_join (ACE_RMCast::Join &)=0
 Send messages directly to the peer. More...

virtual int reply_leave (ACE_RMCast::Leave &)=0
 Send messages directly to the peer. More...


Private Attributes

ACE_UINT32 next_expected_
 Cache the sequence numbers reported from the remote peer using Ack messages. More...

ACE_UINT32 highest_received_
 Cache the sequence numbers reported from the remote peer using Ack messages. More...


Detailed Description

Local representation for remote peers.

Both senders and receivers in the multicast group need to maintain explicit representations of their "peers". For example, a sender needs to know the list of all the receivers and what messages they have reported as successfully received. Likewise, the receiver needs to maintain separate state for each remote sender, and must be able to disconnect from all of them gracefully when needed. The RMCast_Proxy class is an opaque representation of such a peer, and hides all the networking details from the rest of the system.

Definition at line 42 of file RMCast_Proxy.h.


Constructor & Destructor Documentation

ACE_INLINE ACE_RMCast_Proxy::ACE_RMCast_Proxy void   
 

Constructor.

Definition at line 4 of file RMCast_Proxy.i.

00005   : next_expected_ (0)
00006   , highest_received_ (0)
00007 {
00008 }

ACE_RMCast_Proxy::~ACE_RMCast_Proxy void    [virtual]
 

Destructor.

Definition at line 13 of file RMCast_Proxy.cpp.

00014 {
00015 }


Member Function Documentation

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

Proxies process the ACK sequence numbers to cache the ack information from the peer.

Reimplemented from ACE_RMCast_Module.

Definition at line 30 of file RMCast_Proxy.cpp.

References ACE_RMCast_Module::ack, ACE_RMCast::Ack::highest_received, highest_received_, ACE_RMCast::Ack::next_expected, and next_expected_.

Referenced by ACE_RMCast_UDP_Proxy::receive_message.

00031 {
00032   this->next_expected_ = ack.next_expected;
00033   this->highest_received_ = ack.highest_received;
00034   return this->ACE_RMCast_Module::ack (ack);
00035 }

ACE_UINT32 ACE_RMCast_Proxy::highest_received void    const [virtual]
 

Return the highest sequence number successfully received. Only applies to remote receiver proxies.

Please read the documentation in ACE_RMCast::Ack

Definition at line 24 of file RMCast_Proxy.cpp.

References highest_received_.

00025 {
00026   return this->highest_received_;
00027 }

ACE_UINT32 ACE_RMCast_Proxy::next_expected void    const [virtual]
 

Return the next sequence number expected by the peer. Only applies to remote receiver proxies.

Please read the documentation in ACE_RMCast::Ack

Definition at line 18 of file RMCast_Proxy.cpp.

References next_expected_.

00019 {
00020   return this->next_expected_;
00021 }

virtual int ACE_RMCast_Proxy::reply_ack ACE_RMCast::Ack   [pure virtual]
 

Send messages directly to the peer.

Send a message directly to the peer, i.e. the message is not sent through the multicast group and it may not be processed by all the layers in the stack.

Implemented in ACE_RMCast_UDP_Proxy.

Referenced by ACE_RMCast_Reordering::data.

int ACE_RMCast_Proxy::reply_ack_join ACE_RMCast::Ack_Join   [virtual]
 

Send messages directly to the peer.

Send a message directly to the peer, i.e. the message is not sent through the multicast group and it may not be processed by all the layers in the stack.

Reimplemented in ACE_RMCast_UDP_Proxy.

Definition at line 38 of file RMCast_Proxy.cpp.

References highest_received_, next_expected_, and ACE_RMCast::Ack_Join::next_sequence_number.

Referenced by ACE_RMCast_Retransmission::join, and ACE_RMCast_UDP_Proxy::reply_ack_join.

00039 {
00040   if (this->next_expected_ < ack_join.next_sequence_number)
00041     {
00042       this->next_expected_ = ack_join.next_sequence_number;
00043       this->highest_received_ = ack_join.next_sequence_number;
00044     }
00045   return 0;
00046 }

virtual int ACE_RMCast_Proxy::reply_ack_leave ACE_RMCast::Ack_Leave   [pure virtual]
 

Send messages directly to the peer.

Send a message directly to the peer, i.e. the message is not sent through the multicast group and it may not be processed by all the layers in the stack.

Implemented in ACE_RMCast_UDP_Proxy.

Referenced by ACE_RMCast_Retransmission::leave.

virtual int ACE_RMCast_Proxy::reply_data ACE_RMCast::Data   [pure virtual]
 

Send messages directly to the peer.

Send a message directly to the peer, i.e. the message is not sent through the multicast group and it may not be processed by all the layers in the stack.

Implemented in ACE_RMCast_UDP_Proxy.

virtual int ACE_RMCast_Proxy::reply_join ACE_RMCast::Join   [pure virtual]
 

Send messages directly to the peer.

Send a message directly to the peer, i.e. the message is not sent through the multicast group and it may not be processed by all the layers in the stack.

Implemented in ACE_RMCast_UDP_Proxy.

Referenced by ACE_RMCast_Receiver_Module::ack_join, ACE_RMCast_Receiver_Module::data, and ACE_RMCast_Receiver_Module::poll.

virtual int ACE_RMCast_Proxy::reply_leave ACE_RMCast::Leave   [pure virtual]
 

Send messages directly to the peer.

Send a message directly to the peer, i.e. the message is not sent through the multicast group and it may not be processed by all the layers in the stack.

Implemented in ACE_RMCast_UDP_Proxy.

Referenced by ACE_RMCast_Receiver_Module::leaving.

virtual int ACE_RMCast_Proxy::reply_poll ACE_RMCast::Poll   [pure virtual]
 

Send messages directly to the peer.

Send a message directly to the peer, i.e. the message is not sent through the multicast group and it may not be processed by all the layers in the stack.

Implemented in ACE_RMCast_UDP_Proxy.


Member Data Documentation

ACE_UINT32 ACE_RMCast_Proxy::highest_received_ [private]
 

Cache the sequence numbers reported from the remote peer using Ack messages.

Definition at line 93 of file RMCast_Proxy.h.

Referenced by ack, highest_received, and reply_ack_join.

ACE_UINT32 ACE_RMCast_Proxy::next_expected_ [private]
 

Cache the sequence numbers reported from the remote peer using Ack messages.

Definition at line 92 of file RMCast_Proxy.h.

Referenced by ack, next_expected, and reply_ack_join.


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