TAO_ECG_CDR_Message_Receiver::Requests Class Reference

#include <ECG_CDR_Message_Receiver.h>

Collaboration diagram for TAO_ECG_CDR_Message_Receiver::Requests:

Collaboration graph
List of all members.

Public Member Functions

 Requests (void)
 ~Requests (void)
int init (size_t size, size_t min_purge_count)
 Allocates and initializes <fragmented_requests_>.
TAO_ECG_UDP_Request_Entry ** get_request (CORBA::ULong request_id)

Private Member Functions

void purge_requests (CORBA::ULong purge_first, CORBA::ULong purge_last)
Requestsoperator= (const Requests &rhs)
 Requests (const Requests &rhs)

Private Attributes

TAO_ECG_UDP_Request_Entry ** fragmented_requests_
size_t size_
 Size of <fragmented_requests_> array.
size_t min_purge_count_
 Minimum range shifting amount.
CORBA::ULong id_range_low_
CORBA::ULong id_range_high_

Detailed Description

Once init() has been called: Invariant: id_range_high_- id_range_low_ == size_ - 1

Constructor & Destructor Documentation

TAO_ECG_CDR_Message_Receiver::Requests::Requests ( void   ) 

TAO_ECG_CDR_Message_Receiver::Requests::~Requests ( void   ) 

TAO_ECG_CDR_Message_Receiver::Requests::Requests ( const Requests rhs  )  [private]

Member Function Documentation

TAO_ECG_UDP_Request_Entry ** TAO_ECG_CDR_Message_Receiver::Requests::get_request ( CORBA::ULong  request_id  ) 

If <request_id> < <id_range_low> return 0. If <request_id> > <id_range_high>, shift the range so it includes <request_id>, purging incomplete requests as needed.

int TAO_ECG_CDR_Message_Receiver::Requests::init ( size_t  size,
size_t  min_purge_count 

Allocates and initializes <fragmented_requests_>.

Requests& TAO_ECG_CDR_Message_Receiver::Requests::operator= ( const Requests rhs  )  [private]

void TAO_ECG_CDR_Message_Receiver::Requests::purge_requests ( CORBA::ULong  purge_first,
CORBA::ULong  purge_last 
) [private]

Delete any outstanding requests with ids in the range [<purge_first>, <purge_last>] from <fragmented_requests> and and reset their slots.

Member Data Documentation

TAO_ECG_UDP_Request_Entry** TAO_ECG_CDR_Message_Receiver::Requests::fragmented_requests_ [private]

Array, used in a circular fashion, that stores partially received requests (and info on which requests have been fully received and processed) for a range of request ids.

CORBA::ULong TAO_ECG_CDR_Message_Receiver::Requests::id_range_high_ [private]

The range of request ids, currently represented in <fragmented_requests>.

CORBA::ULong TAO_ECG_CDR_Message_Receiver::Requests::id_range_low_ [private]

The range of request ids, currently represented in <fragmented_requests>.

size_t TAO_ECG_CDR_Message_Receiver::Requests::min_purge_count_ [private]

Minimum range shifting amount.

size_t TAO_ECG_CDR_Message_Receiver::Requests::size_ [private]

Size of <fragmented_requests_> array.

The documentation for this class was generated from the following files:
Generated on Tue Nov 21 09:55:36 2006 for TAO_RTEvent by  doxygen 1.4.7-1