Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

ACE_RMCast_Partial_Message Class Reference

#include <RMCast_Partial_Message.h>

Collaboration diagram for ACE_RMCast_Partial_Message:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_RMCast_Partial_Message (ACE_UINT32 message_size)
 Constructor, reserve enough memory for the complete message.
 ~ACE_RMCast_Partial_Message (void)
 Destructor.
int fragment_received (ACE_UINT32 message_size, ACE_UINT32 offset, ACE_Message_Block *mb)
 Process a fragment.
int is_complete (void) const
 Return 1 if the message is complete.
ACE_Message_Blockmessage_body (void)

Private Member Functions

int insert_hole (size_t i, ACE_UINT32 start, ACE_UINT32 end)
 Insert a new hole into the list.
int remove_hole (size_t i)
 Remove a hole from the list.

Private Attributes

ACE_Message_Block message_body_
 Maintain the message storage.
Holehole_list_
size_t max_hole_count_
size_t hole_count_

Detailed Description

This class provides temporary storage for the fragments as they are received in the ACE_RMCast_Reassembly module. It also keeps track of what portions of the message are still missing.


Constructor & Destructor Documentation

ACE_RMCast_Partial_Message::ACE_RMCast_Partial_Message ACE_UINT32  message_size  ) 
 

Constructor, reserve enough memory for the complete message.

ACE_RMCast_Partial_Message::~ACE_RMCast_Partial_Message void   ) 
 

Destructor.


Member Function Documentation

int ACE_RMCast_Partial_Message::fragment_received ACE_UINT32  message_size,
ACE_UINT32  offset,
ACE_Message_Block mb
 

Process a fragment.

A fragment starting at <offset> has been received, copy the fragment contents and update the list of holes.

int ACE_RMCast_Partial_Message::insert_hole size_t  i,
ACE_UINT32  start,
ACE_UINT32  end
[private]
 

Insert a new hole into the list.

The class keeps an array to represent the missing portions of the message. This method inserts a new hole, i.e. a new element in the array at index . The <start> and <end> arguments represent the offsets of the missing portion of the message.

ACE_INLINE int ACE_RMCast_Partial_Message::is_complete void   )  const
 

Return 1 if the message is complete.

ACE_INLINE ACE_Message_Block * ACE_RMCast_Partial_Message::message_body void   ) 
 

Return the body of the message, the memory is *not* owned by the caller

int ACE_RMCast_Partial_Message::remove_hole size_t  i  )  [private]
 

Remove a hole from the list.


Member Data Documentation

size_t ACE_RMCast_Partial_Message::hole_count_ [private]
 

Hole* ACE_RMCast_Partial_Message::hole_list_ [private]
 

size_t ACE_RMCast_Partial_Message::max_hole_count_ [private]
 

ACE_Message_Block ACE_RMCast_Partial_Message::message_body_ [private]
 

Maintain the message storage.


The documentation for this class was generated from the following files:
Generated on Thu Feb 10 20:38:28 2005 for ACE_RMCast by  doxygen 1.3.9.1