TAO  2.2.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
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:
Inheritance graph
Collaboration diagram for TAO_Asynch_Queued_Message:
Collaboration graph

Public Member Functions

 TAO_Asynch_Queued_Message (const ACE_Message_Block *contents, TAO_ORB_Core *oc, ACE_Time_Value *timeout, ACE_Allocator *alloc, bool is_heap_allocated)
 Constructor. More...
 
virtual ~TAO_Asynch_Queued_Message (void)
 Destructor. More...
 
Implement the Template Methods from TAO_Queued_Message
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)
 
virtual bool is_expired (const ACE_Time_Value &now) const
 
virtual void copy_if_necessary (const ACE_Message_Block *chain)
 
- Public Member Functions inherited from TAO_Queued_Message
 TAO_Queued_Message (TAO_ORB_Core *oc, ACE_Allocator *alloc=0, bool is_heap_allocated=false)
 Constructor. More...
 
virtual ~TAO_Queued_Message (void)
 Destructor. More...
 
TAO_Queued_Messagenext (void) const
 Set/get the next element in the list. More...
 
TAO_Queued_Messageprev (void) const
 Set/get the previous element in the list. More...
 
void remove_from_list (TAO_Queued_Message *&head, TAO_Queued_Message *&tail)
 Remove this element from the list. More...
 
void push_back (TAO_Queued_Message *&head, TAO_Queued_Message *&tail)
 Insert the current element at the tail of the queue. More...
 
void push_front (TAO_Queued_Message *&head, TAO_Queued_Message *&tail)
 Insert the current element at the head of the queue. More...
 
- Public Member Functions inherited from TAO_LF_Invocation_Event
 TAO_LF_Invocation_Event (void)
 Constructor. More...
 
virtual ~TAO_LF_Invocation_Event (void)
 Destructor. More...
 
int successful (void) const
 
int error_detected (void) const
 
- Public Member Functions inherited from TAO_LF_Event
 TAO_LF_Event (void)
 Constructor. More...
 
virtual ~TAO_LF_Event (void)
 Destructor. More...
 
virtual int bind (TAO_LF_Follower *follower)
 Bind a follower. More...
 
virtual int unbind (TAO_LF_Follower *follower)
 Unbind the follower. More...
 
void reset_state (int new_state)
 Reset the state, irrespective of the previous states. More...
 
void state_changed (int new_state, TAO_Leader_Follower &lf)
 
int keep_waiting (void)
 Check if we should keep waiting. More...
 

Protected Member Functions

 TAO_Asynch_Queued_Message (char *buf, TAO_ORB_Core *oc, size_t size, const ACE_Time_Value &abs_timeout, ACE_Allocator *alloc, bool is_heap_allocated)
 Constructor. More...
 
- Protected Member Functions inherited from TAO_LF_Invocation_Event
virtual void state_changed_i (int new_state)
 Validate and perform the state change. More...
 

Private Member Functions

void operator= (const TAO_Asynch_Queued_Message &)
 
 TAO_Asynch_Queued_Message (const TAO_Asynch_Queued_Message &)
 

Private Attributes

size_t const size_
 The number of bytes in the buffer. More...
 
size_t offset_
 The offset in the buffer. More...
 
char * buffer_
 The buffer containing the complete message. More...
 
ACE_Time_Value abs_timeout_
 

Additional Inherited Members

- Public Types inherited from TAO_LF_Event
enum  {
  LFS_IDLE = 0, LFS_ACTIVE, LFS_CONNECTION_WAIT, LFS_SUCCESS,
  LFS_FAILURE, LFS_TIMEOUT, LFS_CONNECTION_CLOSED
}
 
- Static Public Member Functions inherited from TAO_LF_Event
static const char * state_name (int st)
 
- Protected Attributes inherited from TAO_Queued_Message
ACE_Allocatorallocator_
 
bool const is_heap_created_
 
TAO_ORB_Coreorb_core_
 Cached copy of ORB_Core pointer. More...
 
- Protected Attributes inherited from TAO_LF_Event
int state_
 The current state. More...
 
TAO_LF_Followerfollower_
 The bounded follower. 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,
TAO_ORB_Core oc,
ACE_Time_Value timeout,
ACE_Allocator alloc,
bool  is_heap_allocated 
)

Constructor.

Parameters
contentsThe message block chain that must be sent.
allocAllocator used for creating this object.
timeoutThe relative timeout after which this message should be expired.
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.

TAO_Asynch_Queued_Message::TAO_Asynch_Queued_Message ( char *  buf,
TAO_ORB_Core oc,
size_t  size,
const ACE_Time_Value abs_timeout,
ACE_Allocator alloc,
bool  is_heap_allocated 
)
protected

Constructor.

Parameters
bufThe buffer that needs to be sent on the wire. The buffer will be owned by this class. The buffer will be deleted when the destructor is called and hence the buffer should always come off the heap!
ocThe ORB Core
sizeThe size of the buffer <buf> that is being handed over.
abs_timeoutThe time after which this message should be expired.
allocAllocator used for creating <this> object.
TAO_Asynch_Queued_Message::TAO_Asynch_Queued_Message ( const TAO_Asynch_Queued_Message )
private

Member Function Documentation

int TAO_Asynch_Queued_Message::all_data_sent ( void  ) const
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Implements TAO_Queued_Message.

void TAO_Asynch_Queued_Message::bytes_transferred ( size_t &  byte_count)
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Implements TAO_Queued_Message.

TAO_Queued_Message * TAO_Asynch_Queued_Message::clone ( ACE_Allocator alloc)
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Implements TAO_Queued_Message.

void TAO_Asynch_Queued_Message::copy_if_necessary ( const ACE_Message_Block chain)
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Implements TAO_Queued_Message.

void TAO_Asynch_Queued_Message::destroy ( void  )
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Implements TAO_Queued_Message.

void TAO_Asynch_Queued_Message::fill_iov ( int  iovcnt_max,
int &  iovcnt,
iovec  iov[] 
) const
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Implements TAO_Queued_Message.

bool TAO_Asynch_Queued_Message::is_expired ( const ACE_Time_Value now) const
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Reimplemented from TAO_Queued_Message.

size_t TAO_Asynch_Queued_Message::message_length ( void  ) const
virtual
Note
No reason to believe why this would be called. But have it here for the sake of uniformity.

Implements TAO_Queued_Message.

void TAO_Asynch_Queued_Message::operator= ( const TAO_Asynch_Queued_Message )
private

Member Data Documentation

ACE_Time_Value TAO_Asynch_Queued_Message::abs_timeout_
private
char* TAO_Asynch_Queued_Message::buffer_
private

The buffer containing the complete message.

size_t TAO_Asynch_Queued_Message::offset_
private

The offset in the buffer.

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

size_t const TAO_Asynch_Queued_Message::size_
private

The number of bytes in the buffer.


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