TAO
2.1.1
|
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.
|
protectedvirtual |
Destructor.
|
private |
|
private |
|
pure virtual |
Install the timeout handler.
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?
|
protected |
The buffer that is used to initialise the data block.
Datablock that is created on the stack to initialise the CDR stream underneath.
Has the reply been dispatched?
Lock to protect is_reply_dispatched_
flag.
CDR stream which has the reply information that needs to be demarshalled by the stubs
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...