Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# TAO::Invocation_Base Class Reference

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

`#include <Invocation_Base.h>`

Inheritance diagram for TAO::Invocation_Base:

[legend]
Collaboration diagram for TAO::Invocation_Base:

[legend]
List of all members.

## [NOHEADER]
char * | operation_name (void)
| Return the name of the operation.
virtual Dynamic::ParameterList * | arguments (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
| Return the list of arguments as a ParameterList.
Dynamic::ExceptionList * | exceptions (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
| Return the list of exceptions declared as a ExceptionList.
CORBA::Any * | result (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
| Return the result of the operation as an Any.
CORBA::Octet | sync_scope (void) const
| Return the syncscope policy of the operation.
Invocation_Status | send_request_interception (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
Invocation_Status | receive_reply_interception (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
Invocation_Status | receive_other_interception (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
PortableInterceptor::ReplyStatus | handle_any_exception (CORBA::Exception *e ACE_ENV_ARG_DECL)
PortableInterceptor::ReplyStatus | handle_all_exception (ACE_ENV_SINGLE_ARG_DECL)
| Return the name of the operation.
ClientRequestInterceptor_Adapter | adapter_
TAO_ClientRequestInfo_i | req_info_
| Return the name of the operation.
## Public Methods
virtual | ~Invocation_Base (void)
TAO_ORB_Core * | orb_core (void) const
| Accessor and mutator methods.
TAO_Stub * | stub (void) const
| Accessor and mutator methods.
CORBA::Object_ptr | forwarded_reference (void)
void | forwarded_reference (CORBA::Object_ptr o)
| Accessor and mutator methods.
TAO_Service_Context & | request_service_context (void)
| Accessors for the service context list.
TAO_Service_Context & | reply_service_context (void)
| Accessor and mutator methods.
CORBA::Object_ptr | steal_forwarded_reference (void)
| Return the forwarded object location by loosing ownership.
bool | is_forwarded (void) const
| Did the invocation got forwarded to a new location?
void | reply_received (Invocation_Status s)
| Mutator to set the reply status of the invocation.
CORBA::Object_ptr | effective_target (void) const
| Return the effective target of the invocation.
CORBA::Object_ptr | target (void) const
| Return the target object.
CORBA::Boolean | response_expected (void) const
| Does this invocation return a response?
## Protected Methods
| Invocation_Base (CORBA::Object_ptr otarget, CORBA::Object_ptr target, TAO_Stub *stub, TAO_Operation_Details &op, bool response_expected)
## Protected Attributes
TAO_Operation_Details & | details_
| The operation details on which we are operating on.
CORBA::Object_var | forwarded_to_
| Forwarded object reference.
bool | response_expected_
| Is response expected?
## Private Methods
Invocation_Base & | operator= (const Invocation_Base &)
## Private Attributes
CORBA::Object_ptr | otarget_
| The original target on which the invocation was started.
CORBA::Object_ptr | target_
| The effective target on which the invocation is on.
TAO_ORB_Core * | orb_core_
| Cache the ORB_Core.
TAO_Stub * | stub_
| The original target on which the invocation was started.

## Detailed Description

The base class for the invocation object.

This class is the base of the invocation object hiererachy. This hierarchy is classified based on the type of invocation and the mode of invocation. One of the objects from the hiererachy 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
| ) | `[protected]`

  | Parameters:
  otarget, The | original target on which this invocation was started.
  target, the | target on which this invocation is flowing ie. the effective target
  op, operation | details of the invocation on target
  response_Expected, flag | to indicate whether the operation encapsulated by op returns a response or not.

## Member Function Documentation

Dynamic::ParameterList * TAO::Invocation_Base::arguments | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the list of arguments as a ParameterList. It is declared virtual so that the DynamicInterface can use its own way of creating the ParameterList.

ACE_INLINE 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.

Dynamic::ExceptionList * TAO::Invocation_Base::exceptions | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)

| Return the list of exceptions declared as a ExceptionList.

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

| Accessor and mutator methods.

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

| These access methods have to be public so that the PortableInterceptor can use them

PortableInterceptor::ReplyStatus TAO::Invocation_Base::handle_all_exception | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | `[protected]`

| Return the name of the operation. Operations invoked by the PortableInterceptor::ClientRequestInfo object to get details about the operation and related stuff.

PortableInterceptor::ReplyStatus TAO::Invocation_Base::handle_any_exception | ( | CORBA::Exception *e | ACE_ENV_ARG_DECL | ) | `[protected]`

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

ACE_INLINE bool TAO::Invocation_Base::is_forwarded | ( | void |  | ) | const

| Did the invocation got forwarded to a new location?

char * TAO::Invocation_Base::operation_name | ( | void |  | ) |

| Return the name of the operation. Operations invoked by the PortableInterceptor::ClientRequestInfo object to get details about the operation and related stuff.

Invocation_Base& TAO::Invocation_Base::operator= | ( | const Invocation_Base & |  | ) | `[private]`

ACE_INLINE TAO_ORB_Core * TAO::Invocation_Base::orb_core | ( | void |  | ) | const

| Accessor and mutator methods.

Invocation_Status TAO::Invocation_Base::receive_other_interception | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)`[protected]`

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

Invocation_Status TAO::Invocation_Base::receive_reply_interception | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)`[protected]`

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

ACE_INLINE void TAO::Invocation_Base::reply_received | ( | Invocation_Status | s | ) |

| Mutator to set the reply status of the invocation.

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

| Accessor and mutator methods.

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.

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

| Does this invocation return a response?

CORBA::Any * TAO::Invocation_Base::result | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)

| Return the result of the operation as an Any.

Invocation_Status TAO::Invocation_Base::send_request_interception | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | throw (CORBA::SystemException)`[protected]`

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

ACE_INLINE CORBA::Object_ptr TAO::Invocation_Base::steal_forwarded_reference | ( | void |  | ) |

| Return the forwarded object location by loosing ownership.

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

| Accessor and mutator methods.

CORBA::Octet TAO::Invocation_Base::sync_scope | ( | void |  | ) | const

| Return the syncscope policy of the operation.

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

| Return the target object.

## Member Data Documentation

ClientRequestInterceptor_Adapter TAO::Invocation_Base::adapter_`[protected]`

| The client requestor adapter and the request info object for making calls on all the registered interceptors.

TAO_Operation_Details& TAO::Invocation_Base::details_`[protected]`

| The operation details on which we are operating on.

CORBA::Object_var TAO::Invocation_Base::forwarded_to_`[protected]`

| Forwarded object reference.

TAO_ORB_Core* TAO::Invocation_Base::orb_core_`[private]`

| Cache the ORB_Core.

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.

TAO_ClientRequestInfo_i TAO::Invocation_Base::req_info_`[protected]`

| Return the name of the operation. Operations invoked by the PortableInterceptor::ClientRequestInfo object to get details about the operation and related stuff.

bool TAO::Invocation_Base::response_expected_`[protected]`

| Is response expected?

TAO_Stub* TAO::Invocation_Base::stub_`[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.

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:

- Invocation_Base.h
- Invocation_Base.cpp
- Invocation_Base.inl