Base class for "queue-able" Custom (non-CORBA) requests. More...
#include <CSD_TP_Custom_Request.h>


Public Member Functions | |
| virtual | ~TP_Custom_Request () |
| Virtual Destructor. | |
Protected Member Functions | |
| TP_Custom_Request (TP_Custom_Request_Operation *op, TP_Servant_State *servant_state) | |
| Constructor. | |
| void | execute_op () |
| void | cancel_op () |
Private Attributes | |
| TP_Custom_Request_Operation_Handle | op_ |
Base class for "queue-able" Custom (non-CORBA) requests.
TBD - Add description
Definition at line 47 of file CSD_TP_Custom_Request.h.
| TAO::CSD::TP_Custom_Request::~TP_Custom_Request | ( | ) | [virtual] |
| TAO::CSD::TP_Custom_Request::TP_Custom_Request | ( | TP_Custom_Request_Operation * | op, | |
| TP_Servant_State * | servant_state | |||
| ) | [protected] |
Constructor.
Definition at line 9 of file CSD_TP_Custom_Request.inl.
: TP_Request(op->servant(),servant_state), op_(op, false) { }
| void TAO::CSD::TP_Custom_Request::cancel_op | ( | ) | [protected] |
Definition at line 40 of file CSD_TP_Custom_Request.inl.
| void TAO::CSD::TP_Custom_Request::execute_op | ( | ) | [protected] |
Definition at line 19 of file CSD_TP_Custom_Request.inl.
{
this->op_->execute();
// Now drop the reference to the custom operation object.
// This is necessary so that custom operation objects can be created
// on the stack for synchronous custom requests. If we do not do this,
// then there is a race condition which could result in the stack-created
// custom operation object having a reference count of 2 when it falls
// out of scope (and destructs). Our op_ data member would be the one
// that held the other reference, and when our op_ data member destructs,
// it attempts to perform a _remove_ref() on the underlying operation
// object - which has already been destructed! Thus, we reset the op_
// data member here to the 'nil' state - causing the _remove_ref() to
// be performed now.
this->op_ = 0;
}
TP_Custom_Request_Operation_Handle TAO::CSD::TP_Custom_Request::op_ [private] |
Definition at line 67 of file CSD_TP_Custom_Request.h.
1.7.0