TAO  2.3.3
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
TAO::Invocation_Base Class Reference

The base class for the invocation object. More...

#include <Invocation_Base.h>

Inheritance diagram for TAO::Invocation_Base:
Inheritance graph
[legend]
Collaboration diagram for TAO::Invocation_Base:
Collaboration graph
[legend]

Public Member Functions

virtual ~Invocation_Base (void)
 
TAO_Stubstub (void) const
 Accessor and mutator methods. More...
 
CORBA::Object_ptr forwarded_reference (void)
 
void forwarded_reference (CORBA::Object_ptr o)
 Accessor and mutator methods. More...
 
TAO_Service_Contextrequest_service_context (void)
 Accessors for the service context list. More...
 
TAO_Service_Contextreply_service_context (void)
 Accessor and mutator methods. More...
 
CORBA::Object_ptr steal_forwarded_reference (void)
 Return the forwarded object location by loosing ownership. More...
 
CORBA::Object_ptr effective_target (void) const
 Return the effective target of the invocation. More...
 
CORBA::Object_ptr target (void) const
 Return the target object. More...
 
CORBA::Boolean response_expected (void) const
 Does this invocation return a response? More...
 
GIOP::ReplyStatusType reply_status (void) const
 Accessor of reply_status of the invocation. More...
 
void reply_status (GIOP::ReplyStatusType s)
 Mutator of reply_status of the invocation. More...
 
TAO_Operation_Detailsoperation_details (void)
 The operaton details of the invocation. More...
 

Protected Member Functions

 Invocation_Base (CORBA::Object_ptr otarget, CORBA::Object_ptr target, TAO_Stub *stub, TAO_Operation_Details &op, bool response_expected, bool request_is_remote)
 

Protected Attributes

TAO_Operation_Detailsdetails_
 The operation details on which we are operating on. More...
 
CORBA::Object_var forwarded_to_
 Forwarded object reference. More...
 
bool response_expected_
 Is response expected? More...
 
GIOP::ReplyStatusType reply_status_
 A GIOP reply status of the invocation. More...
 

Private Member Functions

 Invocation_Base (const Invocation_Base &)
 
Invocation_Baseoperator= (const Invocation_Base &)
 

Private Attributes

TAO_Stubstub_
 
CORBA::Object_ptr otarget_
 The original target on which the invocation was started. More...
 
CORBA::Object_ptr target_
 The effective target on which the invocation is on. More...
 
ClientRequestInterceptor_Adaptercri_adapter_
 The client requestor adapter. More...
 
ServerRequestInterceptor_Adaptersri_adapter_
 The client requestor adapter. More...
 
size_t stack_size_
 The client requestor adapter. More...
 
TAO::Invocation_Status invoke_status_
 The client requestor adapter. More...
 
CORBA::Exceptioncaught_exception_
 Pointer to the caught exception. More...
 
bool const is_remote_request_
 
void exception CORBA::Exceptionexception
 Change the exception status. More...
 
size_t & stack_size (void)
 
CORBA::Exceptioncaught_exception (void)
 The client requestor adapter. More...
 
TAO::Invocation_Status invoke_status (void) const
 Invocation status. More...
 
void invoke_status (Invocation_Status s)
 Mutator to set the invocation status. More...
 
PortableInterceptor::ReplyStatus pi_reply_status (void) const
 The client requestor adapter. More...
 
bool is_remote_request () const
 
Invocation_Status send_request_interception (void)
 
Invocation_Status receive_reply_interception (void)
 
Invocation_Status receive_other_interception (void)
 
PortableInterceptor::ReplyStatus handle_any_exception (CORBA::Exception *e)
 
PortableInterceptor::ReplyStatus handle_all_exception (void)
 The client requestor adapter. More...
 

Detailed Description

The base class for the invocation object.

This class is the base of the invocation object hierarchy. This hierarchy is classified based on the type of invocation and the mode of invocation. One of the objects from the hierarchy is created on the stack for every invocation.

In addition this class encapsulates the essential details that are required for PortableInterceptors to function correctly. Further this class also provides some helper and accessor methods that are used by clients.

Constructor & Destructor Documentation

TAO::Invocation_Base::~Invocation_Base ( void  )
virtual
TAO::Invocation_Base::Invocation_Base ( CORBA::Object_ptr  otarget,
CORBA::Object_ptr  target,
TAO_Stub stub,
TAO_Operation_Details op,
bool  response_expected,
bool  request_is_remote 
)
protected
Parameters
otargetThe original target on which this invocation was started.
targetthe target on which this invocation is flowing ie. the effective target
opoperation details of the invocation on target
response_expectedflag to indicate whether the operation encapsulated by op returns a response or not.
TAO::Invocation_Base::Invocation_Base ( const Invocation_Base )
private

Member Function Documentation

CORBA::Exception* TAO::Invocation_Base::caught_exception ( void  )

The client requestor adapter.

CORBA::Object_ptr TAO::Invocation_Base::effective_target ( void  ) const

Return the effective target of the invocation.

Please see the PortableInterceptor specification in the CORBA spec to understand what effective target means.

CORBA::Object_ptr TAO::Invocation_Base::forwarded_reference ( void  )

Accessor and mutator methods for forwarded object locations. These access methods have to be public so that the PortableInterceptor can use them

void TAO::Invocation_Base::forwarded_reference ( CORBA::Object_ptr  o)

Accessor and mutator methods.

PortableInterceptor::ReplyStatus TAO::Invocation_Base::handle_all_exception ( void  )
protected

The client requestor adapter.

PortableInterceptor::ReplyStatus TAO::Invocation_Base::handle_any_exception ( CORBA::Exception e)
protected

Helper methods to handle interception calls when exceptions are thrown by the PortableInterceptor.

TAO::Invocation_Status TAO::Invocation_Base::invoke_status ( void  ) const

Invocation status.

void TAO::Invocation_Base::invoke_status ( Invocation_Status  s)

Mutator to set the invocation status.

bool TAO::Invocation_Base::is_remote_request ( ) const

Accessor used to determine if the current invocation is part of a remote request, and if not, it will be considered to be part of a collocated request.

TAO_Operation_Details & TAO::Invocation_Base::operation_details ( void  )

The operaton details of the invocation.

Invocation_Base& TAO::Invocation_Base::operator= ( const Invocation_Base )
private
PortableInterceptor::ReplyStatus TAO::Invocation_Base::pi_reply_status ( void  ) const

The client requestor adapter.

Invocation_Status TAO::Invocation_Base::receive_other_interception ( void  )
protected

Helper method to invoke receive_other interception call to all the registered interceptors.

Invocation_Status TAO::Invocation_Base::receive_reply_interception ( void  )
protected

Helper method to invoke receive_reply interception call to all the registered interceptors.

TAO_Service_Context & TAO::Invocation_Base::reply_service_context ( void  )

Accessor and mutator methods.

GIOP::ReplyStatusType TAO::Invocation_Base::reply_status ( void  ) const

Accessor of reply_status of the invocation.

void TAO::Invocation_Base::reply_status ( GIOP::ReplyStatusType  s)

Mutator of reply_status of the invocation.

TAO_Service_Context & TAO::Invocation_Base::request_service_context ( void  )

Accessors for the service context list.

The service context lists are actually cached elsewhere. Providing this accessor helps the PI to access this list in both remote and collocated mode.

CORBA::Boolean TAO::Invocation_Base::response_expected ( void  ) const

Does this invocation return a response?

Invocation_Status TAO::Invocation_Base::send_request_interception ( void  )
protected

Helper method to invoke send_request interception call to all the registered interceptors.

size_t& TAO::Invocation_Base::stack_size ( void  )

Operations invoked by the PortableInterceptor::ClientRequestInfo object to get details about the operation and related stuff. Return a reference to the number of interceptors pushed on to the current interceptor flow stack.

Note
It is a reference since the Portable Interceptor flow stack code must be able to modify this value and use that value at a later time without being forced to use TSS.
CORBA::Object_ptr TAO::Invocation_Base::steal_forwarded_reference ( void  )

Return the forwarded object location by loosing ownership.

TAO_Stub * TAO::Invocation_Base::stub ( void  ) const

Accessor and mutator methods.

CORBA::Object_ptr TAO::Invocation_Base::target ( void  ) const

Return the target object.

Member Data Documentation

CORBA::Exception* TAO::Invocation_Base::caught_exception_
private

Pointer to the caught exception.

ClientRequestInterceptor_Adapter* TAO::Invocation_Base::cri_adapter_
protected

The client requestor adapter.

TAO_Operation_Details& TAO::Invocation_Base::details_
protected

The operation details on which we are operating on.

void TAO::Invocation_Base::exception

Change the exception status.

CORBA::Object_var TAO::Invocation_Base::forwarded_to_
protected

Forwarded object reference.

TAO::Invocation_Status TAO::Invocation_Base::invoke_status_
protected

The client requestor adapter.

bool const TAO::Invocation_Base::is_remote_request_
private

Flag used to distinguish a remote invocation versus a collocated (thru-poa) invocation.

CORBA::Object_ptr TAO::Invocation_Base::otarget_
private

The original target on which the invocation was started.

The following object reference pointers are not duplicated. They are cached for portable interceptors, and they just live for the lifetime of the request. Hence there is no point in duplicating the pointers.

GIOP::ReplyStatusType TAO::Invocation_Base::reply_status_
protected

A GIOP reply status of the invocation.

bool TAO::Invocation_Base::response_expected_
protected

Is response expected?

ServerRequestInterceptor_Adapter* TAO::Invocation_Base::sri_adapter_
protected

The client requestor adapter.

size_t TAO::Invocation_Base::stack_size_
protected

The client requestor adapter.

TAO_Stub* TAO::Invocation_Base::stub_
private
CORBA::Object_ptr TAO::Invocation_Base::target_
private

The effective target on which the invocation is on.


The documentation for this class was generated from the following files: