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.
virtual ~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::ObjectKeyobject_key (void)
TAO_Service_Contextrequest_service_context (void)
 Return the TAO_Service_Context.
TAO_Service_Contextreply_service_context (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 (CORBA::Exception &)
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)
void result_seq (CORBA::OctetSeq &ocs)
int got_result (void)
 Check whether we got the result.
size_t & interceptor_count (void)
TAO::PICurrent_Implrs_pi_current (void)
 Return a reference to the "request scope" PICurrent object.
TAO::PICurrent_Copy_Callbackpi_current_copy_callback (void)
 Return a reference to the PICurrent copy callback object.
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.
IOP::ServiceContextListrequest_service_info (void)
IOP::ServiceContextListreply_service_info (void)
CORBA::ULong request_id (void)
void request_id (CORBA::ULong req)

Private Member Functions

 TAO_ServerRequest ()

Private Attributes

TAO_Pluggable_Messagingmesg_base_
ACE_CString operation_
 Operation name.
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_
TAO::PICurrent_Copy_Callback pi_current_copy_callback_
CORBA::OctetSeq_var result_seq_
 Used by the FTORB.

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_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   )  [virtual]
 

Destructor.

TAO_ServerRequest::TAO_ServerRequest  )  [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 CORBA::Boolean TAO_ServerRequest::argument_flag void   ) 
 

Get the argument_flag.

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

Set the argument_flag.

ACE_INLINE bool TAO_ServerRequest::collocated void   )  const
 

Returns true if the current request is collocated.

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

Should the reply be deferred?

ACE_INLINE void TAO_ServerRequest::dsi_nvlist_align ptrdiff_t  alignment  ) 
 

Set the member.

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

Set the exception type.

ACE_INLINE CORBA::ULong TAO_ServerRequest::exception_type void   ) 
 

Get the exception type.

ACE_INLINE CORBA::Object_ptr TAO_ServerRequest::forward_location void   ) 
 

Get the forward_location.

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().

int TAO_ServerRequest::got_result void   ) 
 

Check whether we got the result.

ACE_INLINE TAO_InputCDR * TAO_ServerRequest::incoming void   )  const
 

Retrieve the incoming stream.

void TAO_ServerRequest::init_reply void   ) 
 

Start a Reply message.

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.

ACE_INLINE void TAO_ServerRequest::is_dsi void   ) 
 

Set the boolean member to 1.

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

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

Set the operation name.

ACE_INLINE const char * TAO_ServerRequest::operation void   )  const
 

Return the operation name.

ACE_INLINE TAO_Operation_Details const * TAO_ServerRequest::operation_details void   )  const
 

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.

ACE_INLINE TAO_OutputCDR * TAO_ServerRequest::outgoing void   )  const
 

Retrieve the outgoing stream.

TAO::PICurrent_Copy_Callback& TAO_ServerRequest::pi_current_copy_callback void   ) 
 

Return a reference to the PICurrent copy callback object.

ACE_INLINE TAO_Tagged_Profile & TAO_ServerRequest::profile void   ) 
 

Return the reference to the tagged profile.

ACE_INLINE TAO_Service_Context & TAO_ServerRequest::reply_service_context void   ) 
 

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

Todo:
This two methods should go away.

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 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 TAO_Service_Context & TAO_ServerRequest::request_service_context void   ) 
 

Return the TAO_Service_Context.

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

Todo:
This two methods should go away.

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

Set the requesting principal.

Note:
Deprecated in CORBA 2.4

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

Set the response expected flag.

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

Is the response expected?

void TAO_ServerRequest::result_seq CORBA::OctetSeq ocs  ) 
 

Return the octet sequence pointer through which the FTORB would send the reply back.

TAO::PICurrent_Impl& TAO_ServerRequest::rs_pi_current void   ) 
 

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

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

void TAO_ServerRequest::send_no_exception_reply void   ) 
 

Used with reliable oneway requests.

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

Set the sync_with_server flag.

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

Should we return before dispatching the servant?

void TAO_ServerRequest::tao_send_reply void   ) 
 

void TAO_ServerRequest::tao_send_reply_exception CORBA::Exception  ) 
 

ACE_INLINE TAO_Transport * TAO_ServerRequest::transport  ) 
 

Return the underlying transport.


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

CORBA::Boolean TAO_ServerRequest::argument_flag_ [private]
 

An argument flag to indicate whether there is any data that is going to get marshalled 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.

CORBA::Boolean TAO_ServerRequest::deferred_reply_ [private]
 

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

ptrdiff_t TAO_ServerRequest::dsi_nvlist_align_ [private]
 

Used to pad CDR stream if we have used DSI.

CORBA::ULong TAO_ServerRequest::exception_type_ [private]
 

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

CORBA::Object_var TAO_ServerRequest::forward_location_ [private]
 

TAO_InputCDR* TAO_ServerRequest::incoming_ [private]
 

Incoming stream.

size_t TAO_ServerRequest::interceptor_count_ [private]
 

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

CORBA::Boolean TAO_ServerRequest::is_dsi_ [private]
 

Did we get passed to a CORBA::ServerRequest?

TAO_Pluggable_Messaging* TAO_ServerRequest::mesg_base_ [private]
 

ACE_CString TAO_ServerRequest::operation_ [private]
 

Operation name.

TAO_Operation_Details const* TAO_ServerRequest::operation_details_ [private]
 

TAO_ORB_Core* TAO_ServerRequest::orb_core_ [private]
 

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

TAO_OutputCDR* TAO_ServerRequest::outgoing_ [private]
 

Outgoing stream.

TAO::PICurrent_Copy_Callback TAO_ServerRequest::pi_current_copy_callback_ [private]
 

PICurrent callback object responsible for copying slot table between PICurrents in different scopes (i.e. thread or request).

TAO_Tagged_Profile TAO_ServerRequest::profile_ [private]
 

The tagged profile that has the addressing information.

TAO_Service_Context TAO_ServerRequest::reply_service_context_ [private]
 

CORBA::ULong TAO_ServerRequest::request_id_ [private]
 

Unique identifier for a request.

TAO_Service_Context TAO_ServerRequest::request_service_context_ [private]
 

Service Context info.

CORBA::OctetSeq_var TAO_ServerRequest::requesting_principal_ [private]
 

Identifies the requester.

CORBA::Boolean TAO_ServerRequest::response_expected_ [private]
 

0: oneway (SYNC_NONE or SYNC_WITH_TRANSPORT) 1: twoway, or oneway (SYNC_WITH_SERVER or SYNC_WITH_TARGET)

CORBA::OctetSeq_var TAO_ServerRequest::result_seq_ [private]
 

Used by the FTORB.

TAO::PICurrent_Impl TAO_ServerRequest::rs_pi_current_ [private]
 

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

CORBA::Boolean TAO_ServerRequest::sync_with_server_ [private]
 

1: oneway (SYNC_WITH_SERVER) 0: anything else

TAO_Transport* TAO_ServerRequest::transport_ [private]
 

Transport class.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:03:57 2005 for TAO by  doxygen 1.4.5