Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TAO_ClientRequestInfo_i Class Reference

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

#include <ClientRequestInfo_i.h>

Collaboration diagram for TAO_ClientRequestInfo_i:

Collaboration graph
[legend]
List of all members.

Stub helper methods

The following methods are used in the implementation of the Stubs, they are not part of the ClientRequestInfo interface, but an extension used internally by TAO.

void response_expected (CORBA::Boolean flag)
void reply_status (TAO::Invocation_Status s)
 Set the status of the received reply.
void reply_status (int s)
void forward_reference (PortableInterceptor::ForwardRequest &exc)
void exception CORBA::Exceptionexception
 Change the exception status.

Public Member Functions

 TAO_ClientRequestInfo_i (TAO::Invocation_Base *invocation)
 Constructor from concrete interface.
 TAO_ClientRequestInfo_i (TAO::Invocation_Base *invocation, CORBA::AbstractBase_ptr abstract_target, CORBA::Boolean response_expected=1)
 Constructor from abstract interface.
virtual ~TAO_ClientRequestInfo_i (void)
 Destructor.
CORBA::ULong request_id (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
char * operation (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
 Return the operation name for the current request.
virtual Dynamic::ParameterListarguments (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
 Return the list of arguments passed to the current operation.
virtual Dynamic::ExceptionListexceptions (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
Dynamic::ContextListcontexts (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
Dynamic::RequestContextoperation_context (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
virtual CORBA::Anyresult (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
CORBA::Boolean response_expected (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
 Returns true for a two-way operation, and false otherwise.
Messaging::SyncScope sync_scope (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
PortableInterceptor::ReplyStatus reply_status (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
CORBA::Object_ptr forward_reference (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
CORBA::Anyget_slot (PortableInterceptor::SlotId id ACE_ENV_ARG_DECL) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
IOP::ServiceContextget_request_service_context (IOP::ServiceId id ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
IOP::ServiceContextget_reply_service_context (IOP::ServiceId id ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
CORBA::Object_ptr target (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
CORBA::Object_ptr effective_target (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
IOP::TaggedProfileeffective_profile (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
CORBA::Anyreceived_exception (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
char * received_exception_id (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
 Return the repository ID for the received exception.
IOP::TaggedComponentget_effective_component (IOP::ComponentId id ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
IOP::TaggedComponentSeqget_effective_components (IOP::ComponentId id ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
CORBA::Policy_ptr get_request_policy (CORBA::PolicyType type ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
void add_request_service_context (const IOP::ServiceContext &service_context, CORBA::Boolean replace ACE_ENV_ARG_DECL) throw (CORBA::SystemException)

Protected Member Functions

void setup_picurrent (void)
IOP::ServiceContextget_service_context_i (TAO_Service_Context &service_context_list, IOP::ServiceId id ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
 Helper method to get the request and response service contexts.
TAO_Stubstub (void) const

Protected Attributes

TAO::Invocation_Baseinvocation_
 Pointer to the invocation object.
CORBA::Exceptioncaught_exception_
 Pointer to the caught exception.
PortableInterceptor::ReplyStatus reply_status_
 Reply status for the current request.
TAO::PICurrent_Impl rs_pi_current_
TAO::PICurrent_Copy_Callback copy_callback_

Detailed Description

Implementation of the PortableInterceptor::ClientRequestInfo interface.


Constructor & Destructor Documentation

TAO_ClientRequestInfo_i::TAO_ClientRequestInfo_i TAO::Invocation_Base invocation  ) 
 

Constructor from concrete interface.

TAO_ClientRequestInfo_i::TAO_ClientRequestInfo_i TAO::Invocation_Base invocation,
CORBA::AbstractBase_ptr  abstract_target,
CORBA::Boolean  response_expected = 1
 

Constructor from abstract interface.

TAO_ClientRequestInfo_i::~TAO_ClientRequestInfo_i void   )  [virtual]
 

Destructor.


Member Function Documentation

void TAO_ClientRequestInfo_i::add_request_service_context const IOP::ServiceContext service_context,
CORBA::Boolean replace  ACE_ENV_ARG_DECL
throw (CORBA::SystemException)
 

Add the IOP::ServiceContext to the request (outgoing) IOP::ServiceContextList.

Dynamic::ParameterList * TAO_ClientRequestInfo_i::arguments ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [virtual]
 

Return the list of arguments passed to the current operation.

Dynamic::ContextList * TAO_ClientRequestInfo_i::contexts ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

IOP::TaggedProfile * TAO_ClientRequestInfo_i::effective_profile ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

CORBA::Object_ptr TAO_ClientRequestInfo_i::effective_target ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

Return the object reference for the current target. The target may change in the even of a location forward.

Dynamic::ExceptionList * TAO_ClientRequestInfo_i::exceptions ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [virtual]
 

Return the list of exceptions the current operation is capable of throwing.

ACE_INLINE void TAO_ClientRequestInfo_i::forward_reference PortableInterceptor::ForwardRequest exc  ) 
 

Extract the forward object reference from the PortableInterceptor::ForwardRequest exception, and set the reply status flag accordingly.

CORBA::Object_ptr TAO_ClientRequestInfo_i::forward_reference ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

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

IOP::TaggedComponent * TAO_ClientRequestInfo_i::get_effective_component IOP::ComponentId id  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException)
 

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

IOP::TaggedComponentSeq * TAO_ClientRequestInfo_i::get_effective_components IOP::ComponentId id  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException)
 

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

IOP::ServiceContext * TAO_ClientRequestInfo_i::get_reply_service_context IOP::ServiceId id  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException)
 

Return the IOP::ServiceContext with the given IOP::ServiceId from the reply service context list.

CORBA::Policy_ptr TAO_ClientRequestInfo_i::get_request_policy CORBA::PolicyType type  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException)
 

Return the policy of the given type in effect for the current request.

IOP::ServiceContext * TAO_ClientRequestInfo_i::get_request_service_context IOP::ServiceId id  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException)
 

Return the IOP::ServiceContext with the given IOP::ServiceId from the request service context list.

IOP::ServiceContext * TAO_ClientRequestInfo_i::get_service_context_i TAO_Service_Context service_context_list,
IOP::ServiceId id  ACE_ENV_ARG_DECL
throw (CORBA::SystemException) [protected]
 

Helper method to get the request and response service contexts.

CORBA::Any * TAO_ClientRequestInfo_i::get_slot PortableInterceptor::SlotId id  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
 

char * TAO_ClientRequestInfo_i::operation ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

Return the operation name for the current request.

Dynamic::RequestContext * TAO_ClientRequestInfo_i::operation_context ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

CORBA::Any * TAO_ClientRequestInfo_i::received_exception ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

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

char * TAO_ClientRequestInfo_i::received_exception_id ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

Return the repository ID for the received exception.

void TAO_ClientRequestInfo_i::reply_status int  s  ) 
 

Set the flag that states whether or not a response is expected. For example, no response is expected in a one-way operation.

void TAO_ClientRequestInfo_i::reply_status TAO::Invocation_Status  s  ) 
 

Set the status of the received reply.

PortableInterceptor::ReplyStatus TAO_ClientRequestInfo_i::reply_status ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

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

CORBA::ULong TAO_ClientRequestInfo_i::request_id ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

Return an ID unique to the current request. This request ID may or may not be the same as the GIOP request ID.

ACE_INLINE void TAO_ClientRequestInfo_i::response_expected CORBA::Boolean  flag  ) 
 

Set the flag that states whether or not a response is expected. For example, no response is expected in a one-way operation.

CORBA::Boolean TAO_ClientRequestInfo_i::response_expected ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

Returns true for a two-way operation, and false otherwise.

CORBA::Any * TAO_ClientRequestInfo_i::result ACE_ENV_SINGLE_ARG_DECL   )  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.

void TAO_ClientRequestInfo_i::setup_picurrent void   )  [protected]
 

Setup thread scope and request scope PortableInterceptor::Current objects.

TAO_Stub* TAO_ClientRequestInfo_i::stub void   )  const [protected]
 

Messaging::SyncScope TAO_ClientRequestInfo_i::sync_scope ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

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.

CORBA::Object_ptr TAO_ClientRequestInfo_i::target ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException)
 

Return the (initial, non-forwarded, or permanently forwarded) object reference of the target.


Member Data Documentation

CORBA::Exception* TAO_ClientRequestInfo_i::caught_exception_ [protected]
 

Pointer to the caught exception.

TAO::PICurrent_Copy_Callback TAO_ClientRequestInfo_i::copy_callback_ [protected]
 

This callback object deep copies the slot table from the TSC to the RSC.

As an optimization, the TSC's slot table is initially only shallowed copied to the RSC. If the TSC's slot table will be modified, e.g. via PICurrent::set_slot(), it's slot table must be deep copied to the RSC before actually modifying that slot table. This is necessary since the RSC is read-only on the client side, meaning that changes in the TSC that occur after instantiation of the RSC must not be reflected in the RSC.

ACE_INLINE void TAO_ClientRequestInfo_i::exception
 

Change the exception status.

TAO::Invocation_Base* TAO_ClientRequestInfo_i::invocation_ [protected]
 

Pointer to the invocation object.

PortableInterceptor::ReplyStatus TAO_ClientRequestInfo_i::reply_status_ [protected]
 

Reply status for the current request.

TAO::PICurrent_Impl TAO_ClientRequestInfo_i::rs_pi_current_ [protected]
 

The "Request Scope Current" (RSC) object, as required by Portable Interceptors.


The documentation for this class was generated from the following files:
Generated on Fri Dec 31 15:28:42 2004 for TAO by  doxygen 1.3.9.1