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_GIOP_Message_Base *mesg_base, TAO_InputCDR &input, TAO_OutputCDR &output, TAO_Transport *transport, TAO_ORB_Core *orb_core)
 TAO_ServerRequest (TAO_GIOP_Message_Base *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.
bool is_forwarded (void) const
GIOP::ReplyStatusType reply_status (void)
 Get the reply status.
void reply_status (GIOP::ReplyStatusType except_type)
 Set the reply status.
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 true.
void dsi_nvlist_align (ptrdiff_t alignment)
 Set the member.
TAO_Operation_Details const * operation_details (void) const
 Get the operation details for the current request.
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 pi_reply_status (PortableInterceptor::ReplyStatus s)
 Set the status of the received reply.
PortableInterceptor::ReplyStatus pi_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_GIOP_Message_Basemesg_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_
bool is_forwarded_
TAO_InputCDRincoming_
 Incoming stream.
TAO_OutputCDRoutgoing_
 Outgoing stream.
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?
GIOP::ReplyStatusType reply_status_
 Reply status (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 pi_reply_status_
 Reply status for the current request.
TAO::Transport_Selection_Guard transport_

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_GIOP_Message_Base mesg_base,
TAO_InputCDR input,
TAO_OutputCDR output,
TAO_Transport transport,
TAO_ORB_Core orb_core 
)

TAO_ServerRequest::TAO_ServerRequest ( TAO_GIOP_Message_Base 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_ServerRequest::TAO_ServerRequest ( void   )  [inline, private]

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


Member Function Documentation

CORBA::Boolean TAO_ServerRequest::argument_flag ( void   )  [inline]

Get the argument_flag.

void TAO_ServerRequest::argument_flag ( CORBA::Boolean  flag  )  [inline]

Set the argument_flag.

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

CORBA::Exception * TAO_ServerRequest::caught_exception ( void   )  [inline]

bool TAO_ServerRequest::collocated ( void   )  const [inline]

Returns true if the current request is collocated.

CORBA::Boolean TAO_ServerRequest::deferred_reply ( void   )  const [inline]

Should the reply be deferred?

void TAO_ServerRequest::dsi_nvlist_align ( ptrdiff_t  alignment  )  [inline]

Set the member.

CORBA::Object_ptr TAO_ServerRequest::forward_location ( void   )  [inline]

Get the forward_location.

void TAO_ServerRequest::forward_location ( CORBA::Object_ptr  forward_reference  )  [inline]

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

TAO_InputCDR * TAO_ServerRequest::incoming ( void   )  const [inline]

Retrieve the incoming stream.

void TAO_ServerRequest::init_reply ( void   ) 

Start a Reply message.

size_t & TAO_ServerRequest::interceptor_count ( void   )  [inline]

Return a reference to the number of interceptors pushed on to the current interceptor flow stack.

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.

void TAO_ServerRequest::is_dsi ( void   )  [inline]

Set the boolean member to true.

bool TAO_ServerRequest::is_forwarded ( void   )  const [inline]

Since forward location is allowed to be nil then this is a proper method to check if the request is being forwarded.

TAO::ObjectKey & TAO_ServerRequest::object_key ( void   )  [inline]

void TAO_ServerRequest::operation ( const char *  operation,
size_t  length,
int  release 
) [inline]

Set the operation name.

const char * TAO_ServerRequest::operation ( void   )  const [inline]

Return the operation name.

TAO_Operation_Details const * TAO_ServerRequest::operation_details ( void   )  const [inline]

Get the operation details for the current request.

size_t TAO_ServerRequest::operation_length ( void   )  const [inline]

Return the length of the operation.

CORBA::ORB_ptr TAO_ServerRequest::orb ( void   ) 

Return the underlying ORB.

TAO_ORB_Core * TAO_ServerRequest::orb_core ( void   )  const [inline]

Return the ORB core pointer member.

TAO_OutputCDR * TAO_ServerRequest::outgoing ( void   )  const [inline]

Retrieve the outgoing stream.

PortableInterceptor::ReplyStatus TAO_ServerRequest::pi_reply_status ( void   )  [inline]

Get the status of the received reply.

void TAO_ServerRequest::pi_reply_status ( PortableInterceptor::ReplyStatus  s  )  [inline]

Set the status of the received reply.

TAO_Tagged_Profile & TAO_ServerRequest::profile ( void   )  [inline]

Return the reference to the tagged profile.

TAO_Service_Context & TAO_ServerRequest::reply_service_context ( void   ) 

Return the reply TAO_Service_Context.

IOP::ServiceContextList & TAO_ServerRequest::reply_service_info ( void   )  [inline]

void TAO_ServerRequest::reply_status ( GIOP::ReplyStatusType  except_type  )  [inline]

Set the reply status.

GIOP::ReplyStatusType TAO_ServerRequest::reply_status ( void   )  [inline]

Get the reply status.

void TAO_ServerRequest::request_id ( CORBA::ULong  req  )  [inline]

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

CORBA::ULong TAO_ServerRequest::request_id ( void   )  [inline]

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

TAO_Service_Context & TAO_ServerRequest::request_service_context ( void   )  [inline]

Return the request TAO_Service_Context.

IOP::ServiceContextList & TAO_ServerRequest::request_service_info ( void   )  [inline]

void TAO_ServerRequest::requesting_principal ( const CORBA::OctetSeq &  principal  )  [inline]

Set the requesting principal.

void TAO_ServerRequest::response_expected ( CORBA::Boolean  response  )  [inline]

Set the response expected flag.

CORBA::Boolean TAO_ServerRequest::response_expected ( void   )  const [inline]

Is the response expected?

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

Append reply here....

void TAO_ServerRequest::send_no_exception_reply ( void   ) 

Used with reliable oneway requests.

void TAO_ServerRequest::sync_with_server ( CORBA::Boolean  sync_flag  )  [inline]

Set the sync_with_server flag.

CORBA::Boolean TAO_ServerRequest::sync_with_server ( void   )  const [inline]

Should we return before dispatching the servant?

void TAO_ServerRequest::tao_send_reply ( void   ) 

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

TAO_Transport * TAO_ServerRequest::transport ( void   )  [inline]

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

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

Pointer to the caught exception.

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.

Used to pad CDR stream if we have used DSI.

Incoming stream.

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

Did we get passed to a CORBA::ServerRequest?

const char* TAO_ServerRequest::operation_ [private]

Operation name.

Operation length.

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

Outgoing stream.

Reply status for the current request.

The tagged profile that has the addressing information.

Do we own the memory associated with operation_?

GIOP::ReplyStatusType TAO_ServerRequest::reply_status_ [private]

Reply status (will be NO_EXCEPTION in the majority of the cases).

Unique identifier for a request.

Service Context info.

CORBA::OctetSeq_var TAO_ServerRequest::requesting_principal_ [private]

Identifies the requester.

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

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

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

true: oneway (SYNC_WITH_SERVER) false: anything else

TAO::Transport_Selection_Guard TAO_ServerRequest::transport_ [private]

Transport class. 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 Jul 13 16:27:03 2009 for TAO by  doxygen 1.5.8