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

# TAO::ServerRequestInfo Class Reference

Implementation of the `PortableInterceptor::ServerRequestInfo` IDL interface. More...

`#include <ServerRequestInfo.h>`

Inheritance diagram for TAO::ServerRequestInfo:

[legend]
Collaboration diagram for TAO::ServerRequestInfo:

[legend]
List of all members.

## Public Member Functions
| ServerRequestInfo (TAO_ServerRequest &server_request, TAO::Argument *const *args, size_t nargs, void *servant_upcall, CORBA::TypeCode_ptr const *exceptions, CORBA::ULong nexceptions)
| Constructor.
virtual CORBA::ULong | request_id () throw (CORBA::SystemException)
virtual char * | operation () throw (CORBA::SystemException)
| Return the operation name for the current request.
virtual Dynamic::ParameterList * | arguments () throw (CORBA::SystemException)
| Return the list of arguments passed to the current operation.
virtual Dynamic::ExceptionList * | exceptions () throw (CORBA::SystemException)
virtual Dynamic::ContextList * | contexts () throw (CORBA::SystemException)
virtual Dynamic::RequestContext * | operation_context () throw (CORBA::SystemException)
virtual CORBA::Any * | result () throw (CORBA::SystemException)
virtual CORBA::Boolean | response_expected () throw (CORBA::SystemException)
| Returns `true` for a two-way operation, and `false` otherwise.
virtual Messaging::SyncScope | sync_scope () throw (CORBA::SystemException)
virtual PortableInterceptor::ReplyStatus | reply_status () throw (CORBA::SystemException)
| Return the reply status for the current request.
virtual CORBA::Object_ptr | forward_reference () throw (CORBA::SystemException)
virtual CORBA::Any * | get_slot (PortableInterceptor::SlotId id) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
| Retrieve data from the "request scope" `PICurrent` object.
virtual IOP::ServiceContext * | get_request_service_context (IOP::ServiceId id) throw (CORBA::SystemException)
virtual IOP::ServiceContext * | get_reply_service_context (IOP::ServiceId id) throw (CORBA::SystemException)
virtual CORBA::Any * | sending_exception () throw (CORBA::SystemException)
virtual PortableInterceptor::ObjectId * | object_id () throw (CORBA::SystemException)
| Return the `ObjectId` for the target object.
virtual CORBA::OctetSeq * | adapter_id () throw (CORBA::SystemException)
virtual char * | server_id () throw (CORBA::SystemException)
virtual char * | orb_id () throw (CORBA::SystemException)
virtual PortableInterceptor::AdapterName * | adapter_name () throw (CORBA::SystemException)
virtual char * | target_most_derived_interface () throw (CORBA::SystemException)
| Return the most derived interface of the target object.
virtual CORBA::Policy_ptr | get_server_policy (CORBA::PolicyType type) throw (CORBA::SystemException)
virtual void | set_slot (PortableInterceptor::SlotId id, const CORBA::Any &data) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
| Insert data into the "request scope" `PICurrent` object.
virtual CORBA::Boolean | target_is_a (const char *id) throw (CORBA::SystemException)
virtual void | add_reply_service_context (const IOP::ServiceContext &service_context, CORBA::Boolean replace) throw (CORBA::SystemException)
TAO_ServerRequest & | server_request (void)
Helper methods specific to TAO.
void | forward_reference (PortableInterceptor::ForwardRequest &exc)
void | forward_reference (CORBA::Object_ptr obj)
## Protected Member Functions
IOP::ServiceContext * | get_service_context_i (TAO_Service_Context &service_context_list, IOP::ServiceId id) throw (CORBA::SystemException)
## Protected Attributes
TAO_ServerRequest & | server_request_
TAO::Argument *const *const | args_
| Operation argument list.
size_t const | nargs_
| Number of element in the operation argument list.
TAO::Portable_Server::Servant_Upcall *const | servant_upcall_
CORBA::TypeCode_ptr const *const | exceptions_
CORBA::ULong const | nexceptions_
| The number of elements in the `exceptions_` array.

## Detailed Description

Implementation of the `PortableInterceptor::ServerRequestInfo` IDL interface.

Implementation of the `PortableInterceptor::ServerRequestInfo` IDL interface.

Note:
  This class is currently not meant to be reference counted since it is instantiated on the stack.

## Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO::ServerRequestInfo::ServerRequestInfo | ( | TAO_ServerRequest & | server_request,
|  | TAO::Argument *const * | args,
|  | size_t | nargs,
|  | void * | servant_upcall,
|  | CORBA::TypeCode_ptr const * | exceptions,
|  | CORBA::ULong | nexceptions
| ) |

| Constructor.

## Member Function Documentation

CORBA::OctetSeq * TAO::ServerRequestInfo::adapter_id | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the `AdapterId` for the POA handling the current request. Implements PortableInterceptor::ServerRequestInfo.

PortableInterceptor::AdapterName * TAO::ServerRequestInfo::adapter_name | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the name of the object adapter that services requests for the invoked object. Implements PortableInterceptor::ServerRequestInfo.

void TAO::ServerRequestInfo::add_reply_service_context | ( | const IOP::ServiceContext & | service_context,
|  | CORBA::Boolean | replace
| ) | throw (CORBA::SystemException)`[virtual]`

| Add the `IOP::ServiceContext` to the reply (outgoing) `IOP::ServiceContextList`.

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

| Return the list of arguments passed to the current operation.

Dynamic::ContextList * TAO::ServerRequestInfo::contexts | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

Dynamic::ExceptionList * TAO::ServerRequestInfo::exceptions | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

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

ACE_INLINE void TAO::ServerRequestInfo::forward_reference | ( | CORBA::Object_ptr | obj | ) |

| Note: This method is only invoked when a `PortableServer::ForwardRequest` exception is thrown by a servant manager.

ACE_INLINE void TAO::ServerRequestInfo::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::ServerRequestInfo::forward_reference | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| If the reply status is `PortableInterceptor::LOCATION_FORWARD` return the object reference to which the request was forwarded.

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

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

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

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

CORBA::Policy_ptr TAO::ServerRequestInfo::get_server_policy | ( | CORBA::PolicyType | type | ) | throw (CORBA::SystemException)`[virtual]`

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

IOP::ServiceContext * TAO::ServerRequestInfo::get_service_context_i | ( | TAO_Service_Context & | service_context_list,
|  | IOP::ServiceId | id
| ) | throw (CORBA::SystemException)`[protected]`

| Helper method to get the request and response service contexts.

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

| Retrieve data from the "request scope" `PICurrent` object.

PortableInterceptor::ObjectId * TAO::ServerRequestInfo::object_id | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the `ObjectId` for the target object. Implements PortableInterceptor::ServerRequestInfo.

virtual char* TAO::ServerRequestInfo::operation | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the operation name for the current request.

Dynamic::RequestContext * TAO::ServerRequestInfo::operation_context | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

char * TAO::ServerRequestInfo::orb_id | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the ORBId value that is passed to the `ORB_init` call. Implements PortableInterceptor::ServerRequestInfo.

PortableInterceptor::ReplyStatus TAO::ServerRequestInfo::reply_status | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

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

virtual CORBA::ULong TAO::ServerRequestInfo::request_id | ( |  | ) | 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.

virtual CORBA::Boolean TAO::ServerRequestInfo::response_expected | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

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

CORBA::Any * TAO::ServerRequestInfo::result | ( |  | ) | 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 method is not valid for oneway operations.

CORBA::Any * TAO::ServerRequestInfo::sending_exception | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Note: There is no trivial way to extract the exception from an `Any`. Implements PortableInterceptor::ServerRequestInfo.

char * TAO::ServerRequestInfo::server_id | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the server_id of the server. The value is passed to the ORB via `-ORBServerId` parameter. Implements PortableInterceptor::ServerRequestInfo.

ACE_INLINE TAO_ServerRequest & TAO::ServerRequestInfo::server_request | ( | void |  | ) |

| Return a reference to the underlying `TAO_ServerRequest` object.

void TAO::ServerRequestInfo::set_slot | ( | PortableInterceptor::SlotId | id,
|  | const CORBA::Any & | data
| ) | throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)`[virtual]`

| Insert data into the "request scope" `PICurrent` object.

Messaging::SyncScope TAO::ServerRequestInfo::sync_scope | ( |  | ) | 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.

CORBA::Boolean TAO::ServerRequestInfo::target_is_a | ( | const char * | id | ) | throw (CORBA::SystemException)`[virtual]`

| Returns true if the target's type corresponds to the given `RepositoryId`. Implements PortableInterceptor::ServerRequestInfo.

char * TAO::ServerRequestInfo::target_most_derived_interface | ( |  | ) | throw (CORBA::SystemException)`[virtual]`

| Return the most derived interface of the target object. Implements PortableInterceptor::ServerRequestInfo.

## Member Data Documentation

TAO::Argument* const* const TAO::ServerRequestInfo::args_`[protected]`

| Operation argument list.

CORBA::TypeCode_ptr const* const TAO::ServerRequestInfo::exceptions_`[protected]`

| Array of `TypeCodes` for user exceptions the operation is capable of raising.

size_t const TAO::ServerRequestInfo::nargs_`[protected]`

| Number of element in the operation argument list.

CORBA::ULong const TAO::ServerRequestInfo::nexceptions_`[protected]`

| The number of elements in the `exceptions_` array.

TAO::Portable_Server::Servant_Upcall* const TAO::ServerRequestInfo::servant_upcall_`[protected]`

| Pointer to the `Servant_Upcall` object that contains the object ID, among other things.

TAO_ServerRequest& TAO::ServerRequestInfo::server_request_`[protected]`

| Underlying request object that contains much of the information encapsulated by this `ServerRequestInfo` implementation.

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

- ServerRequestInfo.h
- ServerRequestInfo.cpp
- ServerRequestInfo.inl