Public Member Functions | Protected Member Functions

TAO::CSD::TP_Remote_Request Class Reference

Represents a "queue-able", remote, CORBA request. Both syncronous and asynchronous remote CORBA requests are represented by the class. More...

#include <CSD_TP_Remote_Request.h>

Inheritance diagram for TAO::CSD::TP_Remote_Request:
Inheritance graph
[legend]
Collaboration diagram for TAO::CSD::TP_Remote_Request:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TP_Remote_Request (TAO_ServerRequest &server_request, const PortableServer::ObjectId &object_id, PortableServer::POA_ptr poa, const char *operation, PortableServer::Servant servant, TP_Servant_State *servant_state)
 Constructor.
virtual ~TP_Remote_Request ()
 Virtual Destructor.

Protected Member Functions

virtual void prepare_for_queue_i ()
virtual void dispatch_i ()
 Dispatch the request to the servant.
virtual void cancel_i ()
 Cancel the request.

Detailed Description

Represents a "queue-able", remote, CORBA request. Both syncronous and asynchronous remote CORBA requests are represented by the class.

TBD - Go over the following comments and clean up.

Since this class derives from the TP_Request class, it can be added to a TP_Queue (ie, it is a "queueable" request). It represents a servant request that has been made by a remote CORBA client (as opposed to a collocated CORBA client). The term "CORBA client" is being used here to distinguish CORBA servant requests (those made thru a CORBA object reference), and "Custom" servant requests that can be "dispatched" to the strategy directly by the client application code (ie, not thru a CORBA object reference). Thus, there are "CORBA clients" and "Direct clients".

In summary, this class represents a servant request made when a remote client invokes a method on a CORBA object reference.

Definition at line 61 of file CSD_TP_Remote_Request.h.


Constructor & Destructor Documentation

TAO::CSD::TP_Remote_Request::TP_Remote_Request ( TAO_ServerRequest server_request,
const PortableServer::ObjectId object_id,
PortableServer::POA_ptr  poa,
const char *  operation,
PortableServer::Servant  servant,
TP_Servant_State servant_state 
)

Constructor.

Definition at line 9 of file CSD_TP_Remote_Request.inl.

  : TP_Corba_Request(object_id,
                     poa,
                     operation,
                     servant,
                     servant_state,
                     server_request)
{
}

TAO::CSD::TP_Remote_Request::~TP_Remote_Request (  )  [virtual]

Virtual Destructor.

Definition at line 15 of file CSD_TP_Remote_Request.cpp.

{
}


Member Function Documentation

void TAO::CSD::TP_Remote_Request::cancel_i (  )  [protected, virtual]

Cancel the request.

Implements TAO::CSD::TP_Request.

Definition at line 50 of file CSD_TP_Remote_Request.cpp.

{
  this->do_cancel();
}

void TAO::CSD::TP_Remote_Request::dispatch_i (  )  [protected, virtual]

Dispatch the request to the servant.

Implements TAO::CSD::TP_Request.

Definition at line 28 of file CSD_TP_Remote_Request.cpp.

{
  try
    {
      this->do_dispatch();
    }
  catch (const ::CORBA::Exception&)
    {
      // Eat these.  We probably should log these, but since we have already
      // unblocked the requesting thread there is no point in saving it or
      // doing anything with it.
    }
  catch (...)
    {
      // Eat these.  We probably should log these, but since we have already
      // unblocked the requesting thread there is no point in saving it or
      // doing anything with it.
    }
}

void TAO::CSD::TP_Remote_Request::prepare_for_queue_i (  )  [protected, virtual]

Prepare this TP_Remote_Request object to be placed into the request queue. This will cause the underlying TAO_ServerRequest object to be cloned.

Reimplemented from TAO::CSD::TP_Request.

Definition at line 21 of file CSD_TP_Remote_Request.cpp.

{
  this->do_clone();
}


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines