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

[legend]
List of all members.

## Public Methods
| TAO_Incoming_Message_Queue (TAO_ORB_Core *orb_core)
| Contructor.
| ~TAO_Incoming_Message_Queue (void)
| Destructor.
TAO_Queued_Data* | dequeue_head (void)
| Adding and deleting a node from the queue.
TAO_Queued_Data* | dequeue_tail (void)
int | enqueue_tail (TAO_Queued_Data *nd)
size_t | 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.
CORBA::ULong | queue_length (void)
| Return the length of the queue..
int | 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.
int | is_head_complete (void)
int | is_tail_fragmented (void)
| This method checks whether the last message that was queued up was fragmented...
size_t | missing_data_tail (void) const
| Return the size of data that is missing in tail of the queue.
## Private Methods
TAO_Queued_Data* | get_node (void)
| Make a node for the queue.
## Private Attributes
TAO_Queued_Data* | queued_data_
| A circular linked listof messages that await processing.
CORBA::ULong | size_
| The size of the queue.
TAO_ORB_Core* | orb_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

- the thread that reads a part of the message would not be the same thread that reads and fills the rest of the message
- the thread that actually processes the message can be totally different.

## Constructor & Destructor Documentation

TAO_Incoming_Message_Queue::TAO_Incoming_Message_Queue ( | TAO_ORB_Core * orb_core )

| Contructor.

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

class TAO_Transport`[friend]`

| void missing_data (size_t data);.

## 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 circular 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:

- Incoming_Message_Queue.h
- Incoming_Message_Queue.cpp
- Incoming_Message_Queue.inl