TAO_Queued_Data Class Reference

Represents a node in the queue of incoming messages. More...

#include <Incoming_Message_Queue.h>

Collaboration diagram for TAO_Queued_Data:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Queued_Data (ACE_Allocator *alloc=0)
 Default Constructor.
 TAO_Queued_Data (ACE_Message_Block *mb, ACE_Allocator *alloc=0)
 Constructor.
 TAO_Queued_Data (const TAO_Queued_Data &qd)
 Copy constructor.
void consolidate (void)
 Consolidate this fragments chained message blocks into one.

Static Public Member Functions

static TAO_Queued_Datamake_queued_data (ACE_Allocator *alloc=0)
 Creation of a node in the queue.
static void release (TAO_Queued_Data *qd)
 Deletion of a node from the queue.
static TAO_Queued_Dataduplicate (TAO_Queued_Data &qd)

Public Attributes

ACE_Message_Blockmsg_block_
 The message block that contains the message.
CORBA::Octet byte_order_
 The byte order of the message that is stored in the node.
CORBA::Octet major_version_
CORBA::Octet minor_version_
CORBA::Octet more_fragments_
CORBA::ULong request_id_
 The fragment request id.
TAO_Pluggable_Message_Type msg_type_
 The message type of the message.
TAO_Queued_Datanext_
 Pounter to the next element in the queue.
Missing Data details
The missing_data_ member contains the number of bytes of data missing from msg_block_.

CORBA::Long missing_data_

Static Private Member Functions

static void replace_data_block (ACE_Message_Block &mb)

Private Attributes

ACE_Allocatorallocator_
 The allocator used to allocate this class.

Detailed Description

Represents a node in the queue of incoming messages.

This class contains necessary information about a message that is stored in the queue. Such a node can be used by the incoming thread from the reactor to dequeue and process the message by sending it to the higher layers of the ORB.

The ACE_Message_Block contained within this class may contain a chain of message blocks (usually when GIOP fragments are involved). In that case consolidate () needs to be called prior to being sent to higher layers of the ORB when the GIOP fragment chain is complete.


Constructor & Destructor Documentation

TAO_Queued_Data::TAO_Queued_Data ACE_Allocator alloc = 0  ) 
 

Default Constructor.

TAO_Queued_Data::TAO_Queued_Data ACE_Message_Block mb,
ACE_Allocator alloc = 0
 

Constructor.

TAO_Queued_Data::TAO_Queued_Data const TAO_Queued_Data qd  ) 
 

Copy constructor.


Member Function Documentation

void TAO_Queued_Data::consolidate void   ) 
 

Consolidate this fragments chained message blocks into one.

TAO_Queued_Data * TAO_Queued_Data::duplicate TAO_Queued_Data qd  )  [static]
 

Duplicate ourselves. This creates a copy of ourselves on the heap and returns a pointer to the duplicated node.

TAO_Queued_Data * TAO_Queued_Data::make_queued_data ACE_Allocator alloc = 0  )  [static]
 

Creation of a node in the queue.

void TAO_Queued_Data::release TAO_Queued_Data qd  )  [static]
 

Deletion of a node from the queue.

ACE_INLINE void TAO_Queued_Data::replace_data_block ACE_Message_Block mb  )  [static, private]
 

Replace the datablock with a one allocated on the heap or allocator


Member Data Documentation

ACE_Allocator* TAO_Queued_Data::allocator_ [private]
 

The allocator used to allocate this class.

CORBA::Octet TAO_Queued_Data::byte_order_
 

The byte order of the message that is stored in the node.

CORBA::Octet TAO_Queued_Data::major_version_
 

Many protocols like GIOP have a major and minor version information that would be needed to read and decipher the message.

CORBA::Octet TAO_Queued_Data::minor_version_
 

CORBA::Long TAO_Queued_Data::missing_data_
 

Data missing in the above message that hasn't been read or processed yet.

CORBA::Octet TAO_Queued_Data::more_fragments_
 

Some messages can be fragmented by the protocol (this is an ORB level fragmentation on top of the TCP/IP fragmentation. This member indicates whether the message that we have recd. and queue already has more fragments that is missing..

ACE_Message_Block* TAO_Queued_Data::msg_block_
 

The message block that contains the message.

TAO_Pluggable_Message_Type TAO_Queued_Data::msg_type_
 

The message type of the message.

TAO_Queued_Data* TAO_Queued_Data::next_
 

Pounter to the next element in the queue.

CORBA::ULong TAO_Queued_Data::request_id_
 

The fragment request id.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:03:51 2005 for TAO by  doxygen 1.4.5