TAO  2.4.0
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
TAO_ServerRequest Class Reference

Class representing a ServerRequest object. More...

#include <TAO_Server_Request.h>

Collaboration diagram for TAO_ServerRequest:
Collaboration graph
[legend]

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. More...
 
 ~TAO_ServerRequest (void)
 Destructor. More...
 
CORBA::ORB_ptr orb (void)
 Return the underlying ORB. More...
 
TAO_ORB_Coreorb_core (void) const
 Return the ORB core pointer member. More...
 
void init_reply (void)
 Start a Reply message. More...
 
TAO_InputCDRincoming (void) const
 Retrieve the incoming stream. More...
 
TAO_OutputCDRoutgoing (void) const
 Retrieve the outgoing stream. More...
 
CORBA::Boolean response_expected (void) const
 Is the response expected? More...
 
CORBA::Boolean deferred_reply (void) const
 Should the reply be deferred? More...
 
void response_expected (CORBA::Boolean response)
 Set the response expected flag. More...
 
CORBA::Boolean sync_with_server (void) const
 Should we return before dispatching the servant? More...
 
void sync_with_server (CORBA::Boolean sync_flag)
 Set the sync_with_server flag. More...
 
CORBA::Boolean is_queued (void) const
 Is the request at risk of being queued? More...
 
void is_queued (CORBA::Boolean qeueued_flag)
 Set the queued flag. More...
 
void sync_after_dispatch (void)
 Send a sync reply if needed after _dispatch is called. More...
 
void sync_before_dispatch (void)
 
void send_no_exception_reply (void)
 Used with reliable oneway requests. More...
 
TAO::ObjectKeyobject_key (void)
 
TAO_Service_Contextrequest_service_context (void)
 Return the request TAO_Service_Context. More...
 
TAO_Service_Contextreply_service_context (void)
 Return the reply TAO_Service_Context. More...
 
IOP::ServiceContextListreply_service_info (void)
 
IOP::ServiceContextListrequest_service_info (void)
 
TAO_Transporttransport ()
 Return the underlying transport. More...
 
void forward_location (CORBA::Object_ptr forward_reference)
 
CORBA::Object_ptr forward_location (void)
 Get the forward_location. More...
 
bool is_forwarded (void) const
 
GIOP::ReplyStatusType reply_status (void)
 Get the reply status. More...
 
void reply_status (GIOP::ReplyStatusType except_type)
 Set the reply status. More...
 
void requesting_principal (const CORBA::OctetSeq &principal)
 Set the requesting principal. More...
 
TAO_Tagged_Profileprofile (void)
 Return the reference to the tagged profile. More...
 
void tao_send_reply (void)
 
void tao_send_reply_exception (const CORBA::Exception &ex)
 
void is_dsi (void)
 Set the boolean member to true. More...
 
void dsi_nvlist_align (ptrdiff_t alignment)
 Set the member. More...
 
TAO_Operation_Details const * operation_details (void) const
 Get the operation details for the current request. More...
 
void argument_flag (CORBA::Boolean flag)
 Set the argument_flag. More...
 
CORBA::Boolean argument_flag (void)
 Get the argument_flag. More...
 
bool collocated (void) const
 Returns true if the current request is collocated. More...
 
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. More...
 
CORBA::Exceptioncaught_exception (void)
 
void caught_exception (CORBA::Exception *exception)
 
void pi_reply_status (PortableInterceptor::ReplyStatus s)
 Set the status of the received reply. More...
 
PortableInterceptor::ReplyStatus pi_reply_status (void)
 Get the status of the received reply. More...
 
CORBA::Policy_ptr clientCompressionEnablingPolicy ()
 
void clientCompressionEnablingPolicy (CORBA::Policy_ptr)
 
CORBA::Policy_ptr clientCompressorIdLevelListPolicy ()
 
void clientCompressorIdLevelListPolicy (CORBA::Policy_ptr)
 
Request attributes.
const char * operation (void) const
 Return the operation name. More...
 
void operation (const char *operation, size_t length, int release)
 Set the operation name. More...
 
size_t operation_length (void) const
 Return the length of the operation. More...
 
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. More...
 
size_t operation_len_
 Operation length. More...
 
bool release_operation_
 Do we own the memory associated with operation_? More...
 
CORBA::Object_var forward_location_
 
bool is_forwarded_
 
TAO_InputCDRincoming_
 Incoming stream. More...
 
TAO_OutputCDRoutgoing_
 Outgoing stream. More...
 
CORBA::Boolean response_expected_
 
CORBA::Boolean deferred_reply_
 
CORBA::Boolean sync_with_server_
 
CORBA::Boolean is_queued_
 
CORBA::Boolean is_dsi_
 Did we get passed to a CORBA::ServerRequest? More...
 
GIOP::ReplyStatusType reply_status_
 Reply status (will be NO_EXCEPTION in the majority of the cases). More...
 
TAO_ORB_Coreorb_core_
 
TAO_Service_Context request_service_context_
 Service Context info. More...
 
TAO_Service_Context reply_service_context_
 
CORBA::ULong request_id_
 Unique identifier for a request. More...
 
TAO_Tagged_Profile profile_
 The tagged profile that has the addressing information. More...
 
CORBA::OctetSeq_var requesting_principal_
 Identifies the requester. More...
 
ptrdiff_t dsi_nvlist_align_
 Used to pad CDR stream if we have used DSI. More...
 
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. More...
 
PortableInterceptor::ReplyStatus pi_reply_status_
 Reply status for the current request. More...
 
TAO::Transport_Selection_Guard transport_
 
CORBA::Policy_var clientCompressionEnablingPolicy_
 
CORBA::Policy_var clientCompressorIdLevelListPolicy_
 

Friends

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

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  )
private

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

Member Function Documentation

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

Set the argument_flag.

CORBA::Boolean TAO_ServerRequest::argument_flag ( void  )

Get the argument_flag.

CORBA::Exception * TAO_ServerRequest::caught_exception ( void  )
void TAO_ServerRequest::caught_exception ( CORBA::Exception exception)
CORBA::Policy_ptr TAO_ServerRequest::clientCompressionEnablingPolicy ( )
void TAO_ServerRequest::clientCompressionEnablingPolicy ( CORBA::Policy_ptr  policy)
CORBA::Policy_ptr TAO_ServerRequest::clientCompressorIdLevelListPolicy ( )
void TAO_ServerRequest::clientCompressorIdLevelListPolicy ( CORBA::Policy_ptr  policy)
bool TAO_ServerRequest::collocated ( void  ) const

Returns true if the current request is collocated.

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

Should the reply be deferred?

void TAO_ServerRequest::dsi_nvlist_align ( ptrdiff_t  alignment)

Set the member.

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

CORBA::Object_ptr TAO_ServerRequest::forward_location ( void  )

Get the forward_location.

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  )

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  )

Set the boolean member to true.

bool TAO_ServerRequest::is_forwarded ( void  ) const

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

CORBA::Boolean TAO_ServerRequest::is_queued ( void  ) const

Is the request at risk of being queued?

void TAO_ServerRequest::is_queued ( CORBA::Boolean  qeueued_flag)

Set the queued flag.

TAO::ObjectKey & TAO_ServerRequest::object_key ( void  )
const char * TAO_ServerRequest::operation ( void  ) const

Return the operation name.

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

Set the operation name.

TAO_Operation_Details const * TAO_ServerRequest::operation_details ( void  ) const

Get the operation details for the current request.

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.

TAO_ORB_Core * TAO_ServerRequest::orb_core ( void  ) const

Return the ORB core pointer member.

TAO_OutputCDR * TAO_ServerRequest::outgoing ( void  ) const

Retrieve the outgoing stream.

void TAO_ServerRequest::pi_reply_status ( PortableInterceptor::ReplyStatus  s)

Set the status of the received reply.

PortableInterceptor::ReplyStatus TAO_ServerRequest::pi_reply_status ( void  )

Get the status of the received reply.

TAO_Tagged_Profile & TAO_ServerRequest::profile ( void  )

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  )
GIOP::ReplyStatusType TAO_ServerRequest::reply_status ( void  )

Get the reply status.

void TAO_ServerRequest::reply_status ( GIOP::ReplyStatusType  except_type)

Set the reply status.

CORBA::ULong TAO_ServerRequest::request_id ( void  )

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

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

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  )

Return the request TAO_Service_Context.

IOP::ServiceContextList & TAO_ServerRequest::request_service_info ( void  )
void TAO_ServerRequest::requesting_principal ( const CORBA::OctetSeq principal)

Set the requesting principal.

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

Is the response expected?

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

Set the response expected flag.

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_after_dispatch ( void  )

Send a sync reply if needed after _dispatch is called.

void TAO_ServerRequest::sync_before_dispatch ( void  )

Send a sync reply if needed before _dispatch is called to avoid possible queuing first.

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

Should we return before dispatching the servant?

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

Set the sync_with_server flag.

void TAO_ServerRequest::tao_send_reply ( void  )
void TAO_ServerRequest::tao_send_reply_exception ( const CORBA::Exception ex)
TAO_Transport * TAO_ServerRequest::transport ( void  )

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

CORBA::Exception* TAO_ServerRequest::caught_exception_
private

Pointer to the caught exception.

CORBA::Policy_var TAO_ServerRequest::clientCompressionEnablingPolicy_
private
CORBA::Policy_var TAO_ServerRequest::clientCompressorIdLevelListPolicy_
private
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.

ptrdiff_t TAO_ServerRequest::dsi_nvlist_align_
private

Used to pad CDR stream if we have used DSI.

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?

bool TAO_ServerRequest::is_forwarded_
private
CORBA::Boolean TAO_ServerRequest::is_queued_
private

true: this request is (or may be) queued by the POA false: no POA queuing involved

TAO_GIOP_Message_Base* TAO_ServerRequest::mesg_base_
private
const char* TAO_ServerRequest::operation_
private

Operation name.

TAO_Operation_Details const* TAO_ServerRequest::operation_details_
private
size_t TAO_ServerRequest::operation_len_
private

Operation length.

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.

PortableInterceptor::ReplyStatus TAO_ServerRequest::pi_reply_status_
private

Reply status for the current request.

TAO_Tagged_Profile TAO_ServerRequest::profile_
private

The tagged profile that has the addressing information.

bool TAO_ServerRequest::release_operation_
private

Do we own the memory associated with operation_?

TAO_Service_Context TAO_ServerRequest::reply_service_context_
private
GIOP::ReplyStatusType TAO_ServerRequest::reply_status_
private

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

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

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.

CORBA::Boolean TAO_ServerRequest::sync_with_server_
private

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: