TAO_Synch_Queued_Message Class Reference

Specialize TAO_Queued_Message for synchronous requests, i.e. twoways and oneways sent with reliability better than SYNC_NONE. More...

#include <Synch_Queued_Message.h>

Inheritance diagram for TAO_Synch_Queued_Message:

Inheritance graph
[legend]
Collaboration diagram for TAO_Synch_Queued_Message:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Synch_Queued_Message (const ACE_Message_Block *contents, ACE_Allocator *alloc=0, int is_heap_allocated=0)
 Constructor.
virtual ~TAO_Synch_Queued_Message (void)
 Destructor.
const ACE_Message_Blockcurrent_block (void) const
virtual size_t message_length (void) const
virtual int all_data_sent (void) const
virtual void fill_iov (int iovcnt_max, int &iovcnt, iovec iov[]) const
virtual void bytes_transferred (size_t &byte_count)
virtual TAO_Queued_Messageclone (ACE_Allocator *alloc)
virtual void destroy (void)

Private Attributes

ACE_Message_Blockcontents_
 The contents of the message.
ACE_Message_Blockcurrent_block_
 The current message block.

Detailed Description

Specialize TAO_Queued_Message for synchronous requests, i.e. twoways and oneways sent with reliability better than SYNC_NONE.

Reliable requests block the sending thread until the message is sent, likewise, the sending thread must be informed if the connection is closed or the message times out.

In contrast oneway (and AMI) requests sent with the SYNC_NONE policy are simple discarded if the connection fails or they timeout.

Another important difference is the management of the data buffer: one SYNC_NONE messages the buffer is immediately copied into a newly allocated buffer, and must be deallocated. Other types of requests use the memory allocated by the sending thread.


Constructor & Destructor Documentation

TAO_Synch_Queued_Message::TAO_Synch_Queued_Message const ACE_Message_Block contents,
ACE_Allocator alloc = 0,
int  is_heap_allocated = 0
 

Constructor.

Parameters:
contents The message block chain that must be sent.
alloc The allocator that is used to allocate objects of this type.

TAO_Synch_Queued_Message::~TAO_Synch_Queued_Message void   )  [virtual]
 

Destructor.


Member Function Documentation

int TAO_Synch_Queued_Message::all_data_sent void   )  const [virtual]
 

Implement the Template Methods from TAO_Queued_Message

Implements TAO_Queued_Message.

void TAO_Synch_Queued_Message::bytes_transferred size_t &  byte_count  )  [virtual]
 

Implement the Template Methods from TAO_Queued_Message

Implements TAO_Queued_Message.

TAO_Queued_Message * TAO_Synch_Queued_Message::clone ACE_Allocator alloc  )  [virtual]
 

Implement the Template Methods from TAO_Queued_Message

Implements TAO_Queued_Message.

const ACE_Message_Block * TAO_Synch_Queued_Message::current_block void   )  const
 

void TAO_Synch_Queued_Message::destroy void   )  [virtual]
 

Implement the Template Methods from TAO_Queued_Message

Implements TAO_Queued_Message.

void TAO_Synch_Queued_Message::fill_iov int  iovcnt_max,
int &  iovcnt,
iovec  iov[]
const [virtual]
 

Implement the Template Methods from TAO_Queued_Message

Implements TAO_Queued_Message.

size_t TAO_Synch_Queued_Message::message_length void   )  const [virtual]
 

Implement the Template Methods from TAO_Queued_Message

Implements TAO_Queued_Message.


Member Data Documentation

ACE_Message_Block* TAO_Synch_Queued_Message::contents_ [private]
 

The contents of the message.

The message is normally generated by a TAO_OutputCDR stream. The application marshals the payload, possibly generating a chain of message block connected via the 'cont()' field.

ACE_Message_Block* TAO_Synch_Queued_Message::current_block_ [private]
 

The current message block.

The message may be set in multiple writev() operations. This point keeps track of the next message to send out.


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