#include <Reply_Dispatcher.h>
Public Member Functions | |
TAO_Reply_Dispatcher (ACE_Allocator *allocator=0) | |
Constructor. | |
virtual | ~TAO_Reply_Dispatcher (void) |
Destructor. | |
virtual int | dispatch_reply (TAO_Pluggable_Reply_Params ¶ms)=0 |
virtual void | reply_timed_out (void)=0 |
Inform that the reply timed out. | |
virtual void | connection_closed (void)=0 |
GIOP::LocateStatusType | locate_reply_status (void) const |
Get the locate reply status. | |
GIOP::ReplyStatusType | reply_status (void) const |
Static Public Member Functions | |
static void | intrusive_add_ref (TAO_Reply_Dispatcher *) |
static void | intrusive_remove_ref (TAO_Reply_Dispatcher *) |
Protected Attributes | |
GIOP::LocateStatusType | locate_reply_status_ |
LocateReply status. | |
GIOP::ReplyStatusType | reply_status_ |
Private Attributes | |
ACE_Atomic_Op< TAO_SYNCH_MUTEX, long > | refcnt_ |
Support for intrusive reference counting. | |
ACE_Allocator * | allocator_ |
Different invocation modes process the Reply messages in different ways. Traditional synchronous replies simply receive the message and wake up the waiting thread (if any). Asynchronous Method Invocation (Callbacks) must process the message in the thread that receives it. Deferred Synchronous (DII) and AMI in the Poller mode save the reply for later processing in the application. The lower level components in the ORB only deal with this abstract interface, when the invocation is made the right type of Reply Dispatcher is instantiated and registered with the Transport object.
Definition at line 58 of file Reply_Dispatcher.h.
TAO_Reply_Dispatcher::TAO_Reply_Dispatcher | ( | ACE_Allocator * | allocator = 0 |
) |
Constructor.
Definition at line 16 of file Reply_Dispatcher.cpp.
: locate_reply_status_ (GIOP::UNKNOWN_OBJECT) , reply_status_ (GIOP::NO_EXCEPTION) , refcnt_ (1) , allocator_(allocator) { }
TAO_Reply_Dispatcher::~TAO_Reply_Dispatcher | ( | void | ) | [virtual] |
virtual void TAO_Reply_Dispatcher::connection_closed | ( | void | ) | [pure virtual] |
The used for the pending reply has been closed. No reply is expected.
Implemented in TAO_DII_Deferred_Reply_Dispatcher, TAO_DII_Asynch_Reply_Dispatcher, and TAO_Asynch_Reply_Dispatcher.
virtual int TAO_Reply_Dispatcher::dispatch_reply | ( | TAO_Pluggable_Reply_Params & | params | ) | [pure virtual] |
Dispatch the reply. Return 1 on sucess, -1 on error.
Implemented in TAO_DII_Deferred_Reply_Dispatcher, TAO_DII_Asynch_Reply_Dispatcher, and TAO_Asynch_Reply_Dispatcher.
void TAO_Reply_Dispatcher::intrusive_add_ref | ( | TAO_Reply_Dispatcher * | rd | ) | [static] |
Definition at line 32 of file Reply_Dispatcher.cpp.
{ if (rd != 0) { ++rd->refcnt_; } }
void TAO_Reply_Dispatcher::intrusive_remove_ref | ( | TAO_Reply_Dispatcher * | rd | ) | [static] |
Definition at line 41 of file Reply_Dispatcher.cpp.
{ if (rd != 0) { long tmp = --rd->refcnt_; if (tmp <= 0) { if (rd->allocator_) { ACE_DES_FREE (rd, rd->allocator_->free, TAO_Reply_Dispatcher); } else { delete rd; } } } }
GIOP::LocateStatusType TAO_Reply_Dispatcher::locate_reply_status | ( | void | ) | const |
Get the locate reply status.
Definition at line 9 of file Reply_Dispatcher.inl.
{ return this->locate_reply_status_; }
GIOP::ReplyStatusType TAO_Reply_Dispatcher::reply_status | ( | void | ) | const |
Definition at line 15 of file Reply_Dispatcher.inl.
{ return this->reply_status_; }
virtual void TAO_Reply_Dispatcher::reply_timed_out | ( | void | ) | [pure virtual] |
Inform that the reply timed out.
Implemented in TAO_DII_Deferred_Reply_Dispatcher, and TAO_Asynch_Reply_Dispatcher.
ACE_Allocator* TAO_Reply_Dispatcher::allocator_ [private] |
Allocator that was used to allocate this reply dispatcher. In case of zero we come from the heap.
Definition at line 113 of file Reply_Dispatcher.h.
GIOP::LocateStatusType TAO_Reply_Dispatcher::locate_reply_status_ [protected] |
LocateReply status.
Definition at line 102 of file Reply_Dispatcher.h.
ACE_Atomic_Op<TAO_SYNCH_MUTEX, long> TAO_Reply_Dispatcher::refcnt_ [private] |
Support for intrusive reference counting.
Definition at line 109 of file Reply_Dispatcher.h.
GIOP::ReplyStatusType TAO_Reply_Dispatcher::reply_status_ [protected] |
Definition at line 105 of file Reply_Dispatcher.h.