Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO_Asynch_Queued_Message Class Reference

Specialize TAO_Queued_Message for asynch requests, i.e. oneways sent with SYNC_NONE policy. More...

`#include <Asynch_Queued_Message.h>`

Inheritance diagram for TAO_Asynch_Queued_Message:

[legend]
Collaboration diagram for TAO_Asynch_Queued_Message:

[legend]
List of all members.

## Public Methods
| TAO_Asynch_Queued_Message (const ACE_Message_Block *contents)
virtual | ~TAO_Asynch_Queued_Message (void)
| Destructor. More...
virtual size_t | message_length (void) const
| If the message has been partially sent it returns the number of bytes that are still not sent. More...
virtual int | all_data_sent (void) const
| Return 1 if all the data has been sent. More...
virtual void | fill_iov (int iovcnt_max, int &iovcnt, iovec iov[]) const
| Different versions of this class represent the message using either a single buffer, or a message block. More...
virtual void | bytes_transferred (size_t &byte_count)
| After the TAO_Transport class completes a successful (or partially successful) I/O operation it must update the state of all the messages queued. More...
virtual void | destroy (void)
| Reliable messages are allocated from the stack, thus they do not be deallocated. More...
## Private Attributes
size_t | size_
| The number of bytes in the buffer. More...
size_t | offset_
| Data up to `offset` has been sent already, only the [offset_,size_) range remains to be sent. More...
char * | buffer_
| The buffer containing the complete message. More...

## Detailed Description

Specialize TAO_Queued_Message for asynch requests, i.e. oneways sent with SYNC_NONE policy.

## Constructor & Destructor Documentation

TAO_Asynch_Queued_Message::TAO_Asynch_Queued_Message | ( | const ACE_Message_Block * | contents | ) |

  | Parameters:
  contents | The message block chain that must be sent.
Todo: I'm almost sure this class will require a callback interface for AMIs sent with SYNC_NONE policy. Those guys need to hear when the connection timeouts or closes, but cannot block waiting for the message to be delivered.

TAO_Asynch_Queued_Message::~TAO_Asynch_Queued_Message | ( | void |  | ) | `[virtual]`

| Destructor.

## Member Function Documentation

int TAO_Asynch_Queued_Message::all_data_sent | ( | void |  | ) | const`[virtual]`

| Return 1 if all the data has been sent. Reimplemented from TAO_Queued_Message.

void TAO_Asynch_Queued_Message::bytes_transferred | ( | size_t & | byte_count | ) | `[virtual]`

  | After the TAO_Transport class completes a successful (or partially successful) I/O operation it must update the state of all the messages queued. This callback method is used by each message to update its state and determine if all the data has been sent already. Parameters:
  byte_count | The number of bytes succesfully sent. The TAO_Queued_Message should decrement this value by the number of bytes that must still be sent.
Returns: Returns 1 if the TAO_Queued_Message has any more data to send. Reimplemented from TAO_Queued_Message.

void TAO_Asynch_Queued_Message::destroy | ( | void |  | ) | `[virtual]`

| Reliable messages are allocated from the stack, thus they do not be deallocated. Asynchronous (SYNC_NONE) messages are allocated from the heap (or a pool), they need to be reclaimed explicitly. Reimplemented from TAO_Queued_Message.

void TAO_Asynch_Queued_Message::fill_iov | ( | int | iovcnt_max,
|  | int & | iovcnt,
|  | iovec | iov[]
| ) | const`[virtual]`

  | Different versions of this class represent the message using either a single buffer, or a message block. This method allows a derived class to fill up the contents of an io vector, the TAO_Transport class uses this method to group as many messages as possible in an iovector before sending them to the OS I/O subsystem. Parameters:
  iovcnt_max | The number of elements in iov
  iovcnt | The number of elements already used by iov, this method should update this counter
  iov | The io vector
Reimplemented from TAO_Queued_Message.

size_t TAO_Asynch_Queued_Message::message_length | ( | void |  | ) | const`[virtual]`

| If the message has been partially sent it returns the number of bytes that are still not sent. Reimplemented from TAO_Queued_Message.

## Member Data Documentation

char* TAO_Asynch_Queued_Message::buffer_`[private]`

| The buffer containing the complete message.

size_t TAO_Asynch_Queued_Message::offset_`[private]`

| Data up to `offset` has been sent already, only the [offset_,size_) range remains to be sent.

size_t TAO_Asynch_Queued_Message::size_`[private]`

| The number of bytes in the buffer.

The documentation for this class was generated from the following files:

- Asynch_Queued_Message.h
- Asynch_Queued_Message.cpp