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

# TAO_ClientRequestInfo Class Reference

Implementation of the PortableInterceptor::ClientRequestInfo interface. More...

`#include <ClientRequestInfo.h>`

Inheritance diagram for TAO_ClientRequestInfo:

[legend]
Collaboration diagram for TAO_ClientRequestInfo:

[legend]
List of all members.

## Public Methods

| TAO_ClientRequestInfo (void)
virtual CORBA::ULong | request_id (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual char * | operation (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| Return the operation name for the current request.
virtual Dynamic::ParameterList * | arguments (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| Return the list of arguments passed to the current operation.
virtual Dynamic::ExceptionList * | exceptions (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual Dynamic::ContextList * | contexts (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual Dynamic::RequestContext * | operation_context (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual CORBA::Any * | result (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual CORBA::Boolean | response_expected (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| Returns true for a two-way operation, and false otherwise.
virtual Messaging::SyncScope | sync_scope (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual PortableInterceptor::ReplyStatus | reply_status (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| Return the reply status for the current request.
virtual CORBA::Object_ptr | forward_reference (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual CORBA::Any * | get_slot (PortableInterceptor::SlotId id ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
virtual IOP::ServiceContext * | get_request_service_context (IOP::ServiceId id ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual IOP::ServiceContext * | get_reply_service_context (IOP::ServiceId id ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual CORBA::Object_ptr | target (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual CORBA::Object_ptr | effective_target (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual IOP::TaggedProfile * | effective_profile (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual CORBA::Any * | received_exception (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual char * | received_exception_id (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
| Return the repository ID for the received exception.
virtual IOP::TaggedComponent * | get_effective_component (IOP::ComponentId id ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual IOP::TaggedComponentSeq * | get_effective_components (IOP::ComponentId id ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual CORBA::Policy_ptr | get_request_policy (CORBA::PolicyType type ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
virtual void | add_request_service_context (const IOP::ServiceContext &service_context, CORBA::Boolean replace ACE_ENV_ARG_DECL_WITH_DEFAULTS) throw (CORBA::SystemException)
void | info (TAO_ClientRequestInfo_i *info)
TAO_ClientRequestInfo_i * | info (void) const

## Private Methods

void | check_validity (ACE_ENV_SINGLE_ARG_DECL)

## Private Attributes

TAO_ClientRequestInfo_i * | info_

## Detailed Description

Implementation of the PortableInterceptor::ClientRequestInfo interface.

This class forwards all method calls to the underlying ClientRequestInfo implementation.

An instance of this class is placed in TSS, where as the underlying implementation is instantiated on the stack during each CORBA request. During each request invocation, a pointer to the stack instantiated implementation is placed in the instance of this class.

This may seem unnecessary. However, it is necessary to avoid instantiating an object that inherits from CORBA::Object in the critical path. Such an instantiation would cause a lock to be initialized (not acquired) in the critical path, which can degrade performance significantly.

## Constructor & Destructor Documentation

TAO_ClientRequestInfo::TAO_ClientRequestInfo | ( | void |  | ) |

## Member Function Documentation

void TAO_ClientRequestInfo::add_request_service_context | ( | const IOP::ServiceContext & | service_context,
|  | CORBA::Boolean replace | ACE_ENV_ARG_DECL_WITH_DEFAULTS
| ) | throw (CORBA::SystemException)`[virtual]`

| Add the IOP::ServiceContext to the request (outgoing) IOP::ServiceContextList. Implements PortableInterceptor::ClientRequestInfo.

Dynamic::ParameterList * TAO_ClientRequestInfo::arguments | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the list of arguments passed to the current operation. Implements PortableInterceptor::RequestInfo.

ACE_INLINE void TAO_ClientRequestInfo::check_validity | ( | ACE_ENV_SINGLE_ARG_DECL |  | ) | `[private]`

| Check if this ClientRequestInfo object is called within the context of a request.

Dynamic::ContextList * TAO_ClientRequestInfo::contexts | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Implements PortableInterceptor::RequestInfo.

IOP::TaggedProfile * TAO_ClientRequestInfo::effective_profile | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Implements PortableInterceptor::ClientRequestInfo.

CORBA::Object_ptr TAO_ClientRequestInfo::effective_target | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the object reference for the current target. The target may change in the even of a location forward. Implements PortableInterceptor::ClientRequestInfo.

Dynamic::ExceptionList * TAO_ClientRequestInfo::exceptions | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the list of exceptions the current operation is capable of throwing. Implements PortableInterceptor::RequestInfo.

CORBA::Object_ptr TAO_ClientRequestInfo::forward_reference | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| If the reply status is PortableInterceptor::LOCATION_FORWARD or PortableInterceptor::LOCATION_FORWARD_PERMANENT, return the object reference to which the request was forwarded. Implements PortableInterceptor::RequestInfo.

IOP::TaggedComponent * TAO_ClientRequestInfo::get_effective_component | ( | IOP::ComponentId id | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException)`[virtual]`

| Return the first IOP::TaggedComponent that matches the given IOP::ComponentId in the object reference for the current target. Implements PortableInterceptor::ClientRequestInfo.

IOP::TaggedComponentSeq * TAO_ClientRequestInfo::get_effective_components | ( | IOP::ComponentId id | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException)`[virtual]`

| Return all IOP::TaggedComponent(s) that match the given IOP::ComponentId in the object reference for the current target. Implements PortableInterceptor::ClientRequestInfo.

IOP::ServiceContext * TAO_ClientRequestInfo::get_reply_service_context | ( | IOP::ServiceId id | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException)`[virtual]`

| Return the IOP::ServiceContext with the given IOP::ServiceId from the reply service context list. Implements PortableInterceptor::RequestInfo.

CORBA::Policy_ptr TAO_ClientRequestInfo::get_request_policy | ( | CORBA::PolicyType type | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException)`[virtual]`

| Return the policy of the given type in effect for the current request. Implements PortableInterceptor::ClientRequestInfo.

IOP::ServiceContext * TAO_ClientRequestInfo::get_request_service_context | ( | IOP::ServiceId id | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException)`[virtual]`

| Return the IOP::ServiceContext with the given IOP::ServiceId from the request service context list. Implements PortableInterceptor::RequestInfo.

CORBA::Any * TAO_ClientRequestInfo::get_slot | ( | PortableInterceptor::SlotId id | ACE_ENV_ARG_DECL_WITH_DEFAULTS | ) | throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)`[virtual]`

| Implements PortableInterceptor::RequestInfo.

ACE_INLINE TAO_ClientRequestInfo_i * TAO_ClientRequestInfo::info | ( | void |  | ) | const

| Get the ClientRequestInfo implementation which this class forwards all method call to.

ACE_INLINE void TAO_ClientRequestInfo::info | ( | TAO_ClientRequestInfo_i * | info | ) |

| Set the ClientRequestInfo implementation which this class forwards all method call to.

char * TAO_ClientRequestInfo::operation | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the operation name for the current request. Implements PortableInterceptor::RequestInfo.

Dynamic::RequestContext * TAO_ClientRequestInfo::operation_context | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Implements PortableInterceptor::RequestInfo.

CORBA::Any * TAO_ClientRequestInfo::received_exception | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

Note:
  There is no trivial way to extract the exception from an Any.

Implements PortableInterceptor::ClientRequestInfo.

char * TAO_ClientRequestInfo::received_exception_id | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the repository ID for the received exception. Implements PortableInterceptor::ClientRequestInfo.

PortableInterceptor::ReplyStatus TAO_ClientRequestInfo::reply_status | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the reply status for the current request. Statuses can be PortableInterceptor::SUCCESSFUL, SYSTEM_EXCEPTION, USER_EXCEPTION, LOCATION_FORWARD, LOCATION_FORWARD_PERMANENT, TRANSPORT_RETRY, UNKNOWN. Implements PortableInterceptor::RequestInfo.

CORBA::ULong TAO_ClientRequestInfo::request_id | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return an ID unique to the current request. This request ID may or may not be the same as the GIOP request ID. Implements PortableInterceptor::RequestInfo.

CORBA::Boolean TAO_ClientRequestInfo::response_expected | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Returns true for a two-way operation, and false otherwise. Implements PortableInterceptor::RequestInfo.

CORBA::Any * TAO_ClientRequestInfo::result | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the result of the current request. If there is no return value then an Any with tk_void TypeCode is returned. This is method is not valid for oneway operations. Implements PortableInterceptor::RequestInfo.

Messaging::SyncScope TAO_ClientRequestInfo::sync_scope | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the sync_scope policy value for the current one-way operation. If the operation is not a one-way, a CORBA::BAD_INV_ORDER exception is thrown. Implements PortableInterceptor::RequestInfo.

CORBA::Object_ptr TAO_ClientRequestInfo::target | ( | ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the (initial, non-forwarded, or permanently forwarded) object reference of the target. Implements PortableInterceptor::ClientRequestInfo.

## Member Data Documentation

TAO_ClientRequestInfo_i* TAO_ClientRequestInfo::info_`[private]`

| Pointer to the object that actually implements the ClientRequestInfo functionality.

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

- ClientRequestInfo.h
- ClientRequestInfo.cpp
- ClientRequestInfo.inl