TAO_ServerRequest Class Reference

Class representing a ServerRequest object. More...

#include <TAO_Server_Request.h>

Collaboration diagram for TAO_ServerRequest:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_ServerRequest (TAO_Pluggable_Messaging *mesg_base, TAO_InputCDR &input, TAO_OutputCDR &output, TAO_Transport *transport, TAO_ORB_Core *orb_core)
 TAO_ServerRequest (TAO_Pluggable_Messaging *mesg_base, CORBA::ULong request_id, CORBA::Boolean response_expected, CORBA::Boolean deferred_flag, TAO::ObjectKey &object_key, const char *operation, TAO_OutputCDR &output, TAO_Transport *transport, TAO_ORB_Core *orb_core, int &parse_error)
 TAO_ServerRequest (TAO_ORB_Core *orb_core, TAO_Operation_Details const &details, CORBA::Object_ptr target)
 Constructor used by thru-POA collocated invocation path.
 ~TAO_ServerRequest (void)
 Destructor.
CORBA::ORB_ptr orb (void)
 Return the underlying ORB.
TAO_ORB_Coreorb_core (void) const
 Return the ORB core pointer member.
void init_reply (void)
 Start a Reply message.
TAO_InputCDRincoming (void) const
 Retrieve the incoming stream.
TAO_OutputCDRoutgoing (void) const
 Retrieve the outgoing stream.
CORBA::Boolean response_expected (void) const
 Is the response expected?
CORBA::Boolean deferred_reply (void) const
 Should the reply be deferred?
void response_expected (CORBA::Boolean response)
 Set the response expected flag.
CORBA::Boolean sync_with_server (void) const
 Should we return before dispatching the servant?
void sync_with_server (CORBA::Boolean sync_flag)
 Set the sync_with_server flag.
void send_no_exception_reply (void)
 Used with reliable oneway requests.
TAO::ObjectKey & object_key (void)
TAO_Service_Contextrequest_service_context (void)
 Return the request TAO_Service_Context.
TAO_Service_Contextreply_service_context (void)
 Return the reply TAO_Service_Context.
IOP::ServiceContextList & reply_service_info (void)
IOP::ServiceContextList & request_service_info (void)
TAO_Transporttransport ()
 Return the underlying transport.
void forward_location (CORBA::Object_ptr forward_reference)
CORBA::Object_ptr forward_location (void)
 Get the forward_location.
CORBA::ULong exception_type (void)
 Get the exception type.
void exception_type (CORBA::ULong except_type)
 Set the exception type.
void requesting_principal (const CORBA::OctetSeq &principal)
 Set the requesting principal.
TAO_Tagged_Profileprofile (void)
 Return the reference to the tagged profile.
void tao_send_reply (void)
void tao_send_reply_exception (const CORBA::Exception &ex)
void is_dsi (void)
 Set the boolean member to 1.
void dsi_nvlist_align (ptrdiff_t alignment)
 Set the member.
TAO_Operation_Details const * operation_details (void) const
void argument_flag (CORBA::Boolean flag)
 Set the argument_flag.
CORBA::Boolean argument_flag (void)
 Get the argument_flag.
bool collocated (void) const
 Returns true if the current request is collocated.
void send_cached_reply (CORBA::OctetSeq &ocs)
size_t & interceptor_count (void)
TAO::PICurrent_Impl * rs_pi_current (void)
 Return a reference to the "request scope" PICurrent object.
CORBA::Exceptioncaught_exception (void)
void caught_exception (CORBA::Exception *exception)
void reply_status (PortableInterceptor::ReplyStatus s)
 Set the status of the received reply.
PortableInterceptor::ReplyStatus reply_status (void)
 Get the status of the received reply.
Request attributes.
const char * operation (void) const
 Return the operation name.
void operation (const char *operation, size_t length, int release)
 Set the operation name.
size_t operation_length (void) const
 Return the length of the operation.
CORBA::ULong request_id (void)
void request_id (CORBA::ULong req)

Private Member Functions

 TAO_ServerRequest (void)

Private Attributes

TAO_Pluggable_Messagingmesg_base_
const char * operation_
 Operation name.
size_t operation_len_
 Operation length.
bool release_operation_
 Do we own the memory associated with operation_?
CORBA::Object_var forward_location_
TAO_InputCDRincoming_
 Incoming stream.
TAO_OutputCDRoutgoing_
 Outgoing stream.
TAO_Transporttransport_
 Transport class.
CORBA::Boolean response_expected_
CORBA::Boolean deferred_reply_
CORBA::Boolean sync_with_server_
CORBA::Boolean is_dsi_
 Did we get passed to a CORBA::ServerRequest?
CORBA::ULong exception_type_
 Exception type (will be NO_EXCEPTION in the majority of the cases).
TAO_ORB_Coreorb_core_
TAO_Service_Context request_service_context_
 Service Context info.
TAO_Service_Context reply_service_context_
CORBA::ULong request_id_
 Unique identifier for a request.
TAO_Tagged_Profile profile_
 The tagged profile that has the addressing information.
CORBA::OctetSeq_var requesting_principal_
 Identifies the requester.
ptrdiff_t dsi_nvlist_align_
 Used to pad CDR stream if we have used DSI.
TAO_Operation_Details const * operation_details_
CORBA::Boolean argument_flag_
size_t interceptor_count_
TAO::PICurrent_Impl * rs_pi_current_
CORBA::Exceptioncaught_exception_
 Pointer to the caught exception.
PortableInterceptor::ReplyStatus reply_status_
 Reply status for the current request.
TAO::Transport_Selection_Guard transport_selection_guard_

Friends

class TAO::CSD::FW_Server_Request_Wrapper
class TAO_AMH_Response_Handler
 Declare TAO_AMH_Response_Handler a friend.

Detailed Description

Class representing a ServerRequest object.

Encapsulates CDR, transport and pluggable messaging components on the server side.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_ServerRequest::TAO_ServerRequest ( TAO_Pluggable_Messaging mesg_base,
TAO_InputCDR input,
TAO_OutputCDR output,
TAO_Transport transport,
TAO_ORB_Core orb_core 
)

TAO_ServerRequest::TAO_ServerRequest ( TAO_Pluggable_Messaging mesg_base,
CORBA::ULong  request_id,
CORBA::Boolean  response_expected,
CORBA::Boolean  deferred_flag,
TAO::ObjectKey &  object_key,
const char *  operation,
TAO_OutputCDR output,
TAO_Transport transport,
TAO_ORB_Core orb_core,
int &  parse_error 
)

TAO_ServerRequest::TAO_ServerRequest ( TAO_ORB_Core orb_core,
TAO_Operation_Details const &  details,
CORBA::Object_ptr  target 
)

Constructor used by thru-POA collocated invocation path.

TAO_ServerRequest::~TAO_ServerRequest ( void   ) 

Destructor.

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_ServerRequest::TAO_ServerRequest ( void   )  [private]

Default ctor only used to create a TAO_ServerRequest that is about to be the target of a clone operation.


Member Function Documentation

ACE_INLINE const char * TAO_ServerRequest::operation ( void   )  const

Return the operation name.

ACE_INLINE void TAO_ServerRequest::operation ( const char *  operation,
size_t  length,
int  release 
)

Set the operation name.

ACE_INLINE size_t TAO_ServerRequest::operation_length ( void   )  const

Return the length of the operation.

CORBA::ORB_ptr TAO_ServerRequest::orb ( void   ) 

Return the underlying ORB.

ACE_INLINE TAO_ORB_Core * TAO_ServerRequest::orb_core ( void   )  const

Return the ORB core pointer member.

void TAO_ServerRequest::init_reply ( void   ) 

Start a Reply message.

ACE_INLINE TAO_InputCDR * TAO_ServerRequest::incoming ( void   )  const

Retrieve the incoming stream.

ACE_INLINE TAO_OutputCDR * TAO_ServerRequest::outgoing ( void   )  const

Retrieve the outgoing stream.

ACE_INLINE CORBA::Boolean TAO_ServerRequest::response_expected ( void   )  const

Is the response expected?

ACE_INLINE CORBA::Boolean TAO_ServerRequest::deferred_reply ( void   )  const

Should the reply be deferred?

ACE_INLINE void TAO_ServerRequest::response_expected ( CORBA::Boolean  response  ) 

Set the response expected flag.

ACE_INLINE CORBA::Boolean TAO_ServerRequest::sync_with_server ( void   )  const

Should we return before dispatching the servant?

ACE_INLINE void TAO_ServerRequest::sync_with_server ( CORBA::Boolean  sync_flag  ) 

Set the sync_with_server flag.

void TAO_ServerRequest::send_no_exception_reply ( void   ) 

Used with reliable oneway requests.

ACE_INLINE TAO::ObjectKey & TAO_ServerRequest::object_key ( void   ) 

ACE_INLINE TAO_Service_Context & TAO_ServerRequest::request_service_context ( void   ) 

Return the request TAO_Service_Context.

TAO_Service_Context & TAO_ServerRequest::reply_service_context ( void   ) 

Return the reply TAO_Service_Context.

ACE_INLINE IOP::ServiceContextList & TAO_ServerRequest::reply_service_info ( void   ) 

ACE_INLINE IOP::ServiceContextList & TAO_ServerRequest::request_service_info ( void   ) 

ACE_INLINE TAO_Transport * TAO_ServerRequest::transport (  ) 

Return the underlying transport.

ACE_INLINE CORBA::ULong TAO_ServerRequest::request_id ( void   ) 

To handle System Exceptions at the lowest level, a method returning the request_id_ is needed.

ACE_INLINE void TAO_ServerRequest::request_id ( CORBA::ULong  req  ) 

To handle System Exceptions at the lowest level, a method returning the request_id_ is needed.

ACE_INLINE void TAO_ServerRequest::forward_location ( CORBA::Object_ptr  forward_reference  ) 

Set the reference to the object the request should be forwarded to. This reference will only be used if set prior to calling init_reply().

ACE_INLINE CORBA::Object_ptr TAO_ServerRequest::forward_location ( void   ) 

Get the forward_location.

ACE_INLINE CORBA::ULong TAO_ServerRequest::exception_type ( void   ) 

Get the exception type.

ACE_INLINE void TAO_ServerRequest::exception_type ( CORBA::ULong  except_type  ) 

Set the exception type.

ACE_INLINE void TAO_ServerRequest::requesting_principal ( const CORBA::OctetSeq &  principal  ) 

Set the requesting principal.

ACE_INLINE TAO_Tagged_Profile & TAO_ServerRequest::profile ( void   ) 

Return the reference to the tagged profile.

void TAO_ServerRequest::tao_send_reply ( void   ) 

void TAO_ServerRequest::tao_send_reply_exception ( const CORBA::Exception ex  ) 

ACE_INLINE void TAO_ServerRequest::is_dsi ( void   ) 

Set the boolean member to 1.

ACE_INLINE void TAO_ServerRequest::dsi_nvlist_align ( ptrdiff_t  alignment  ) 

Set the member.

ACE_INLINE TAO_Operation_Details const * TAO_ServerRequest::operation_details ( void   )  const

ACE_INLINE void TAO_ServerRequest::argument_flag ( CORBA::Boolean  flag  ) 

Set the argument_flag.

ACE_INLINE CORBA::Boolean TAO_ServerRequest::argument_flag ( void   ) 

Get the argument_flag.

ACE_INLINE bool TAO_ServerRequest::collocated ( void   )  const

Returns true if the current request is collocated.

void TAO_ServerRequest::send_cached_reply ( CORBA::OctetSeq &  ocs  ) 

Send cached reply. Used in scenarios where the FTORB thinks that this request is a duplicate

Append reply here....

ACE_INLINE size_t & TAO_ServerRequest::interceptor_count ( void   ) 

Note:
It is a reference since the Portable Interceptor flow stack code must be able to modify this value and use that value at a later time without being forced to use TSS.

TAO::PICurrent_Impl * TAO_ServerRequest::rs_pi_current ( void   ) 

Return a reference to the "request scope" PICurrent object.

ACE_INLINE CORBA::Exception * TAO_ServerRequest::caught_exception ( void   ) 

void TAO_ServerRequest::caught_exception ( CORBA::Exception exception  ) 

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

Set the status of the received reply.

ACE_INLINE PortableInterceptor::ReplyStatus TAO_ServerRequest::reply_status ( void   ) 

Get the status of the received reply.


Friends And Related Function Documentation

friend class TAO::CSD::FW_Server_Request_Wrapper [friend]

Declare FW_Server_Request_Wrapper a friend This friendship makes the FW_Server_Request_Wrapper be able to clone the TAO_ServerRequest.

friend class TAO_AMH_Response_Handler [friend]

Declare TAO_AMH_Response_Handler a friend.

The TAO_AMH_Response_Handler class needs to copy part of the state in a TAO_ServerRequest, however, we do not want to expose that state as public members of this class, neither do we want to add modifiers to the TAO_AMH_Response_Handler class that would allow us (the TAO_ServerRequest class) to set the state.

Lucky for us, C++ is a language for adult developers, and allow us to use the evil "friend" declaration.


Member Data Documentation

TAO_Pluggable_Messaging* TAO_ServerRequest::mesg_base_ [private]

const char* TAO_ServerRequest::operation_ [private]

Operation name.

size_t TAO_ServerRequest::operation_len_ [private]

Operation length.

bool TAO_ServerRequest::release_operation_ [private]

Do we own the memory associated with operation_?

CORBA::Object_var TAO_ServerRequest::forward_location_ [private]

TAO_InputCDR* TAO_ServerRequest::incoming_ [private]

Incoming stream.

TAO_OutputCDR* TAO_ServerRequest::outgoing_ [private]

Outgoing stream.

TAO_Transport* TAO_ServerRequest::transport_ [private]

Transport class.

CORBA::Boolean TAO_ServerRequest::response_expected_ [private]

false: oneway (SYNC_NONE or SYNC_WITH_TRANSPORT) true: twoway, or oneway (SYNC_WITH_SERVER or SYNC_WITH_TARGET)

CORBA::Boolean TAO_ServerRequest::deferred_reply_ [private]

false: Reply would be sent by the object of this class which is the default. true: Reply would not be prepared by this class and it would be deferred for somebody.

CORBA::Boolean TAO_ServerRequest::sync_with_server_ [private]

true: oneway (SYNC_WITH_SERVER) false: anything else

CORBA::Boolean TAO_ServerRequest::is_dsi_ [private]

Did we get passed to a CORBA::ServerRequest?

CORBA::ULong TAO_ServerRequest::exception_type_ [private]

Exception type (will be NO_EXCEPTION in the majority of the cases).

TAO_ORB_Core* TAO_ServerRequest::orb_core_ [private]

A pointer to the ORB Core for the context where the request was created.

TAO_Service_Context TAO_ServerRequest::request_service_context_ [private]

Service Context info.

TAO_Service_Context TAO_ServerRequest::reply_service_context_ [private]

CORBA::ULong TAO_ServerRequest::request_id_ [private]

Unique identifier for a request.

TAO_Tagged_Profile TAO_ServerRequest::profile_ [private]

The tagged profile that has the addressing information.

CORBA::OctetSeq_var TAO_ServerRequest::requesting_principal_ [private]

Identifies the requester.

ptrdiff_t TAO_ServerRequest::dsi_nvlist_align_ [private]

Used to pad CDR stream if we have used DSI.

TAO_Operation_Details const* TAO_ServerRequest::operation_details_ [private]

CORBA::Boolean TAO_ServerRequest::argument_flag_ [private]

An argument flag to indicate whether there is any data that is going to get marshaled along as a reply. The default will be 1 which indicates that we have some data that needs to be sent back to the client.

size_t TAO_ServerRequest::interceptor_count_ [private]

The number of interceptors pushed on to the current interceptor flow stack.

TAO::PICurrent_Impl* TAO_ServerRequest::rs_pi_current_ [private]

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

CORBA::Exception* TAO_ServerRequest::caught_exception_ [private]

Pointer to the caught exception.

PortableInterceptor::ReplyStatus TAO_ServerRequest::reply_status_ [private]

Reply status for the current request.

TAO::Transport_Selection_Guard TAO_ServerRequest::transport_selection_guard_ [private]

An RAII (resource acquisition is initialization) class instance for interfacing with TSS storage for the "current" transport.


The documentation for this class was generated from the following files:
Generated on Mon Jun 25 16:40:29 2007 for TAO by  doxygen 1.5.2-2