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

TAO_ServerRequestInfo Class Reference

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

#include <ServerRequestInfo.h>

Inheritance diagram for TAO_ServerRequestInfo

Inheritance graph
[legend]
Collaboration diagram for TAO_ServerRequestInfo:

Collaboration graph
[legend]
List of all members.

Helper methods specific to TAO.

void reply_status (PortableInterceptor::ReplyStatus s)
 Set the status of the received reply.

void forward_reference (PortableInterceptor::ForwardRequest &exc)
 Extract the forward object reference from the PortableInterceptor::ForwardRequest exception, and set the reply status flag accordingly.

void forward_reference (CORBA::Object_ptr obj)
 Set the forward reference associated with the current LOCATION_FORWARD reply. This method is only invoked when a PortableServer::ForwardRequest exception is thrown by a servant manager.

void exception CORBA::Exception* exception
 Change the exception status.


Public Methods

 TAO_ServerRequestInfo (TAO_ServerRequest &server_request, TAO_Object_Adapter::Servant_Upcall *servant_upcall)
 Constructor.

virtual CORBA::ULong request_id ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) 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.

virtual char* operation ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the operation name for the current request.

virtual Dynamic::ParameterList* arguments ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the list of arguments passed to the current operation.

virtual Dynamic::ExceptionList* exceptions ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the list of exceptions the current operation is capable of throwing.

virtual Dynamic::ContextList* contexts ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
virtual Dynamic::RequestContext* operation_context ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
virtual CORBA::Any* result ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 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.

virtual CORBA::Boolean response_expected ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Returns true for a two-way operation, and false otherwis.e.

virtual Messaging::SyncScope sync_scope ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) 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.

virtual PortableInterceptor::ReplyStatus reply_status ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) 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.

virtual CORBA::Object_ptr forward_reference ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) 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.

virtual CORBA::Any* get_slot ( PortableInterceptor::SlotId id, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
 Retrieve data from the "request scope" PICurrent object.

virtual IOP::ServiceContextget_request_service_context ( IOP::ServiceId id, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the IOP::ServiceContext with the given IOP::ServiceId from the request service context list.

virtual IOP::ServiceContextget_reply_service_context ( IOP::ServiceId id, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the IOP::ServiceContext with the given IOP::ServiceId from the reply service context list.

virtual CORBA::Any* sending_exception ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return an Any containing the exception being sent, if any. Otherwise, throw a CORBA::BAD_INV_ORDER exception. More...

virtual CORBA::Exception* _sending_exception ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
virtual CORBA::OctetSeq* object_id ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the ObjectId for the target object.

virtual CORBA::OctetSeq* adapter_id ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the AdapterId for the POA handling the current request.

virtual char* target_most_derived_interface ( CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the most derived interface of the target object.

virtual CORBA::Policy_ptr get_server_policy ( CORBA::PolicyType type, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Return the policy of the given type in effect for the current request.

virtual void set_slot ( PortableInterceptor::SlotId id, const CORBA::Any & data, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot)
 Insert data into the "request scope" PICurrent object.

virtual CORBA::Boolean target_is_a ( const char * id, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Returns true if the target's type corresponds to the given RepositoryId.

virtual void add_reply_service_context ( const IOP::ServiceContext & service_context, CORBA::Boolean replace, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) throw (CORBA::SystemException)
 Add the IOP::ServiceContext to the reply (outgoing) IOP::ServiceContextList.

TAO_ServerRequestserver_request (void)
 Return a reference to the underlying TAO_ServerRequest object.


Protected Methods

IOP::ServiceContextget_service_context_i ( TAO_Service_Context &service_context_list, IOP::ServiceId id, CORBA::Environment &ACE_TRY_ENV) throw (CORBA::SystemException)
 Helper method to get the request and response service contexts.


Protected Attributes

TAO_ServerRequestserver_request_
 Underlying request object that contains much of the information encapsulated by this TAO_ServerRequestInfo class.

TAO_Object_Adapter::Servant_Upcallservant_upcall_
 Pointer to the Servant_Upcall object that contains the object ID, among other things.

CORBA::Exception* caught_exception_
 Pointer to the caught exception.

PortableInterceptor::ReplyStatus reply_status_
 Reply status for the current request.


Detailed Description

Implementation of the PortableInterceptor::ServerRequestInfo interface.


Constructor & Destructor Documentation

TAO_ServerRequestInfo::TAO_ServerRequestInfo ( TAO_ServerRequest & server_request,
TAO_Object_Adapter::Servant_Upcall * servant_upcall ) [inline]
 

Constructor.


Member Function Documentation

CORBA::Exception * TAO_ServerRequestInfo::_sending_exception ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Note:
This is TAO specific and was done to combat the previous problem to some extent. Avoid this method whenever possible.

CORBA::OctetSeq * TAO_ServerRequestInfo::adapter_id ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Return the AdapterId for the POA handling the current request.

void TAO_ServerRequestInfo::add_reply_service_context ( const IOP::ServiceContext & service_context,
CORBA::Boolean replace,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

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

Dynamic::ParameterList * TAO_ServerRequestInfo::arguments ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Return the list of arguments passed to the current operation.

Reimplemented in TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping, TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown, TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down, TAO_ServerRequestInfo_ImplementationRepository_Administration_find, TAO_ServerRequestInfo_ImplementationRepository_Administration_list, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy, TAO_ServerRequestInfo_CORBA_Policy_policy_type_get, TAO_ServerRequestInfo_CORBA_Policy_copy, and TAO_ServerRequestInfo_CORBA_Policy_destroy.

Dynamic::ContextList * TAO_ServerRequestInfo::contexts ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Dynamic::ExceptionList * TAO_ServerRequestInfo::exceptions ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

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

Reimplemented in TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping, TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown, TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down, TAO_ServerRequestInfo_ImplementationRepository_Administration_find, TAO_ServerRequestInfo_ImplementationRepository_Administration_list, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy, TAO_ServerRequestInfo_CORBA_Policy_policy_type_get, TAO_ServerRequestInfo_CORBA_Policy_copy, and TAO_ServerRequestInfo_CORBA_Policy_destroy.

ACE_INLINE void TAO_ServerRequestInfo::forward_reference ( CORBA::Object_ptr obj )
 

Set the forward reference associated with the current LOCATION_FORWARD reply. 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 ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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.

IOP::ServiceContext * TAO_ServerRequestInfo::get_reply_service_context ( IOP::ServiceId id,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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,
CORBA::Environment & ACE_TRY_ENV ) throw (CORBA::SystemException) [protected]
 

Helper method to get the request and response service contexts.

CORBA::Any * TAO_ServerRequestInfo::get_slot ( PortableInterceptor::SlotId id,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot) [virtual]
 

Retrieve data from the "request scope" PICurrent object.

CORBA::OctetSeq * TAO_ServerRequestInfo::object_id ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Return the ObjectId for the target object.

char * TAO_ServerRequestInfo::operation ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Return the operation name for the current request.

Dynamic::RequestContext * TAO_ServerRequestInfo::operation_context ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

ACE_INLINE void TAO_ServerRequestInfo::reply_status ( PortableInterceptor::ReplyStatus s )
 

Set the status of the received reply.

PortableInterceptor::ReplyStatus TAO_ServerRequestInfo::reply_status ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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.

CORBA::ULong TAO_ServerRequestInfo::request_id ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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.

CORBA::Boolean TAO_ServerRequestInfo::response_expected ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

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

CORBA::Any * TAO_ServerRequestInfo::result ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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.

Reimplemented in TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping, TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown, TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down, TAO_ServerRequestInfo_ImplementationRepository_Administration_find, TAO_ServerRequestInfo_ImplementationRepository_Administration_list, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy, TAO_ServerRequestInfo_CORBA_Policy_policy_type_get, TAO_ServerRequestInfo_CORBA_Policy_copy, and TAO_ServerRequestInfo_CORBA_Policy_destroy.

CORBA::Any * TAO_ServerRequestInfo::sending_exception ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Return an Any containing the exception being sent, if any. Otherwise, throw a CORBA::BAD_INV_ORDER exception.

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

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,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException, PortableInterceptor::InvalidSlot) [virtual]
 

Insert data into the "request scope" PICurrent object.

Messaging::SyncScope TAO_ServerRequestInfo::sync_scope ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) 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,
CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Returns true if the target's type corresponds to the given RepositoryId.

Reimplemented in TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping, TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown, TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down, TAO_ServerRequestInfo_ImplementationRepository_Administration_find, TAO_ServerRequestInfo_ImplementationRepository_Administration_list, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy, TAO_ServerRequestInfo_CORBA_Policy_policy_type_get, TAO_ServerRequestInfo_CORBA_Policy_copy, and TAO_ServerRequestInfo_CORBA_Policy_destroy.

char * TAO_ServerRequestInfo::target_most_derived_interface ( CORBA::Environment & ACE_TRY_ENV = TAO_default_environment () ) throw (CORBA::SystemException) [virtual]
 

Return the most derived interface of the target object.

Reimplemented in TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping, TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown, TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running, TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down, TAO_ServerRequestInfo_ImplementationRepository_Administration_find, TAO_ServerRequestInfo_ImplementationRepository_Administration_list, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n, TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy, TAO_ServerRequestInfo_CORBA_Policy_policy_type_get, TAO_ServerRequestInfo_CORBA_Policy_copy, and TAO_ServerRequestInfo_CORBA_Policy_destroy.


Member Data Documentation

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

Pointer to the caught exception.

ACE_INLINE void TAO_ServerRequestInfo::exception
 

Change the exception status.

PortableInterceptor::ReplyStatus TAO_ServerRequestInfo::reply_status_ [protected]
 

Reply status for the current request.

TAO_Object_Adapter::Servant_Upcall * 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 TAO_ServerRequestInfo class.


The documentation for this class was generated from the following files:
Generated at Fri Oct 5 08:08:39 2001 for TAO_PortableServer by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000