Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound 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 Methods

 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 Methods

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 Fri Apr 2 17:04:52 2004 for ACE_RMCast by doxygen1.2.18