TAO 2.0.4
|
Base class for TAO_Asynch_Reply_Dispatcher and TAO_DII_Deferred_Reply_Dispatcher. More...
#include <Asynch_Reply_Dispatcher_Base.h>
Public Member Functions | |
TAO_Asynch_Reply_Dispatcher_Base (TAO_ORB_Core *orb_core, ACE_Allocator *allocator=0) | |
Default constructor. | |
void | transport (TAO_Transport *t) |
Sets the transport for this invocation. | |
virtual long | schedule_timer (CORBA::ULong, const ACE_Time_Value &)=0 |
Install the timeout handler. | |
bool | try_dispatch_reply (void) |
A helper method that can be used by the subclasses. | |
Protected Member Functions | |
virtual | ~TAO_Asynch_Reply_Dispatcher_Base (void) |
Destructor. | |
Protected Attributes | |
IOP::ServiceContextList | reply_service_info_ |
The service context list. | |
char | buf_ [ACE_CDR::DEFAULT_BUFSIZE] |
The buffer that is used to initialise the data block. | |
ACE_Data_Block | db_ |
TAO_InputCDR | reply_cdr_ |
TAO_Transport * | transport_ |
This invocation is using this transport, may change... | |
Private Member Functions | |
void | operator= (const TAO_Asynch_Reply_Dispatcher_Base &) |
TAO_Asynch_Reply_Dispatcher_Base (const TAO_Asynch_Reply_Dispatcher_Base &) | |
Private Attributes | |
ACE_Lock * | lock_ |
Lock to protect is_reply_dispatched_ flag. | |
bool | is_reply_dispatched_ |
Has the reply been dispatched? |
Base class for TAO_Asynch_Reply_Dispatcher and TAO_DII_Deferred_Reply_Dispatcher.
TAO_Asynch_Reply_Dispatcher_Base::TAO_Asynch_Reply_Dispatcher_Base | ( | TAO_ORB_Core * | orb_core, |
ACE_Allocator * | allocator = 0 |
||
) |
Default constructor.
TAO_Asynch_Reply_Dispatcher_Base::~TAO_Asynch_Reply_Dispatcher_Base | ( | void | ) | [protected, virtual] |
Destructor.
TAO_Asynch_Reply_Dispatcher_Base::TAO_Asynch_Reply_Dispatcher_Base | ( | const TAO_Asynch_Reply_Dispatcher_Base & | ) | [private] |
void TAO_Asynch_Reply_Dispatcher_Base::operator= | ( | const TAO_Asynch_Reply_Dispatcher_Base & | ) | [private] |
virtual long TAO_Asynch_Reply_Dispatcher_Base::schedule_timer | ( | CORBA::ULong | , |
const ACE_Time_Value & | |||
) | [pure virtual] |
Install the timeout handler.
void TAO_Asynch_Reply_Dispatcher_Base::transport | ( | TAO_Transport * | t | ) |
Sets the transport for this invocation.
bool TAO_Asynch_Reply_Dispatcher_Base::try_dispatch_reply | ( | void | ) |
A helper method that can be used by the subclasses.
The semantics of this helper method needs careful attention. A call to this method will do the following
Why are we clumping everything in one method. Answer is we need atomicity?
char TAO_Asynch_Reply_Dispatcher_Base::buf_[ACE_CDR::DEFAULT_BUFSIZE] [protected] |
The buffer that is used to initialise the data block.
ACE_Data_Block TAO_Asynch_Reply_Dispatcher_Base::db_ [protected] |
Datablock that is created on the stack to initialise the CDR stream underneath.
bool TAO_Asynch_Reply_Dispatcher_Base::is_reply_dispatched_ [private] |
Has the reply been dispatched?
ACE_Lock* TAO_Asynch_Reply_Dispatcher_Base::lock_ [private] |
Lock to protect is_reply_dispatched_
flag.
CDR stream which has the reply information that needs to be demarshalled by the stubs
IOP::ServiceContextList TAO_Asynch_Reply_Dispatcher_Base::reply_service_info_ [protected] |
The service context list.
Note, that this is not a reference as in the synchronous case. We own the reply_service_info because our TAO_Asynch_Invocation or TAO_DII_Deferred_Invocation will go out of scope before we are done.
This invocation is using this transport, may change...