#include <Synch_Queued_Message.h>
Inheritance diagram for TAO_Synch_Queued_Message:
Public Methods | |
TAO_Synch_Queued_Message (const ACE_Message_Block *contents, ACE_Allocator *alloc=0) | |
virtual | ~TAO_Synch_Queued_Message (void) |
Destructor. More... | |
const ACE_Message_Block * | current_block (void) const |
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 TAO_Queued_Message * | clone (ACE_Allocator *alloc) |
Clone this element. More... | |
virtual void | destroy (void) |
Reliable messages are allocated from the stack, thus they do not be deallocated. More... | |
Private Attributes | |
ACE_Message_Block * | contents_ |
The message is normally generated by a TAO_OutputCDR stream. More... | |
ACE_Message_Block * | current_block_ |
The message may be set in multiple writev() operations. More... |
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.
|
|
|
Destructor.
|
|
Return 1 if all the data has been sent.
Reimplemented from TAO_Queued_Message. |
|
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.
Reimplemented from TAO_Queued_Message. |
|
Clone this element.
Reimplemented from TAO_Queued_Message. |
|
|
|
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. |
|
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.
Reimplemented from TAO_Queued_Message. |
|
If the message has been partially sent it returns the number of bytes that are still not sent.
Reimplemented from TAO_Queued_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. |
|
The message may be set in multiple writev() operations. This point keeps track of the next message to send out. |