Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TAO_Incoming_Message_Queue Class Reference

A queue of the messages in the incoming data path. More...

#include <Incoming_Message_Queue.h>

Collaboration diagram for TAO_Incoming_Message_Queue:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Incoming_Message_Queue (TAO_ORB_Core *orb_core)
 Constructor.
 ~TAO_Incoming_Message_Queue (void)
 Destructor.
TAO_Queued_Datadequeue_head (void)
 Adding and deleting a node from the queue.
TAO_Queued_Datadequeue_tail (void)
int enqueue_tail (TAO_Queued_Data *nd)
size_t copy_tail (ACE_Message_Block &block)
CORBA::ULong queue_length (void)
 Return the length of the queue..
int is_tail_complete (void)
int is_head_complete (void)
int is_tail_fragmented (void)
size_t missing_data_tail (void) const
 Return the size of data that is missing in tail of the queue.

Private Member Functions

TAO_Queued_Dataget_node (void)
 Make a node for the queue.

Private Attributes

TAO_Queued_Dataqueued_data_
 A linked listof messages that await processing.
CORBA::ULong size_
 The size of the queue.
TAO_ORB_Coreorb_core_
 Copy of our ORB Core.

Friends

class TAO_Transport

Detailed Description

A queue of the messages in the incoming data path.

Please read the documentation in the TAO_Transport class to find out more about the design of the incoming data path.

Under certain conditions TAO may have to maintain a queue per-connection. This queue is drained by the pluggable protocols framework, normally under control of the ACE_Reactor, but other configurations are conceivable.

The memory that is allocated for holding the messages comes from the global pool for the following reasons


Constructor & Destructor Documentation

TAO_Incoming_Message_Queue::TAO_Incoming_Message_Queue TAO_ORB_Core orb_core  ) 
 

Constructor.

TAO_Incoming_Message_Queue::~TAO_Incoming_Message_Queue void   ) 
 

Destructor.


Member Function Documentation

size_t TAO_Incoming_Message_Queue::copy_tail ACE_Message_Block block  ) 
 

Copy message from block to the tail of the queue. The size of message that is copied to the tail node is returned. The number of bytes copied depends on the amount of bytes needed to make the tail node consistent.

TAO_Queued_Data * TAO_Incoming_Message_Queue::dequeue_head void   ) 
 

Adding and deleting a node from the queue.

TAO_Queued_Data * TAO_Incoming_Message_Queue::dequeue_tail void   ) 
 

int TAO_Incoming_Message_Queue::enqueue_tail TAO_Queued_Data nd  ) 
 

ACE_INLINE TAO_Queued_Data * TAO_Incoming_Message_Queue::get_node void   )  [private]
 

Make a node for the queue.

ACE_INLINE int TAO_Incoming_Message_Queue::is_head_complete void   ) 
 

ACE_INLINE int TAO_Incoming_Message_Queue::is_tail_complete void   ) 
 

Methods for sanity check. Checks to see whether the node on the head or tail is complete or not and ready for further processing.

ACE_INLINE int TAO_Incoming_Message_Queue::is_tail_fragmented void   ) 
 

This method checks whether the last message that was queued up was fragmented...

ACE_INLINE size_t TAO_Incoming_Message_Queue::missing_data_tail void   )  const
 

Return the size of data that is missing in tail of the queue.

ACE_INLINE CORBA::ULong TAO_Incoming_Message_Queue::queue_length void   ) 
 

Return the length of the queue..


Friends And Related Function Documentation

friend class TAO_Transport [friend]
 


Member Data Documentation

TAO_ORB_Core* TAO_Incoming_Message_Queue::orb_core_ [private]
 

Copy of our ORB Core.

TAO_Queued_Data* TAO_Incoming_Message_Queue::queued_data_ [private]
 

A linked listof messages that await processing.

CORBA::ULong TAO_Incoming_Message_Queue::size_ [private]
 

The size of the queue.


The documentation for this class was generated from the following files:
Generated on Fri Dec 31 15:30:26 2004 for TAO by  doxygen 1.3.9.1