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

# TAO_ServerRequest Class Reference

Class representing a ServerRequest object. More...

`#include <TAO_Server_Request.h>`

Collaboration diagram for TAO_ServerRequest:

[legend]
List of all members.

## Public Methods

| 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)
virtual | ~TAO_ServerRequest (void)
| Destructor.
CORBA::ORB_ptr | orb (void)
| Return the underlying ORB.
TAO_ORB_Core * | orb_core (void)
| Return the ORB core pointer member.
void | init_reply (void)
| Start a Reply message.
TAO_InputCDR & | incoming (void)
| Retrieve the incoming stream.
TAO_OutputCDR & | outgoing (void)
| 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_Context & | request_service_context (void)
| Return the TAO_Service_Context.
TAO_Service_Context & | reply_service_context (void)
TAO_Transport * | transport ()
| 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_Profile & | profile (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.
void | argument_flag (CORBA::Boolean flag)
| Get/Set operations for the argument_flag.
CORBA::Boolean | argument_flag (void)
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_Impl & | rs_pi_current (void)
| Return a reference to the "request scope" PICurrent 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::ServiceContextList & | request_service_info (void)
IOP::ServiceContextList & | reply_service_info (void)
CORBA::ULong | request_id (void)
void | request_id (CORBA::ULong req)

## Private Attributes

TAO_Pluggable_Messaging * | mesg_base_
ACE_CString | operation_
| Operation name.
CORBA::Object_var | forward_location_
TAO_InputCDR * | incoming_
| Incoming stream.
TAO_OutputCDR * | outgoing_
| Outgoing stream.
TAO_Transport * | transport_
| Transport class.
CORBA::Boolean | response_expected_
CORBA::Boolean | deferred_reply_
CORBA::Boolean | sync_with_server_
CORBA::ULong | exception_type_
| Exception type (will be NO_EXCEPTION in the majority of the cases).
TAO_ORB_Core * | orb_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.
CORBA::Boolean | is_dsi_
| Did we get passed to a CORBA::ServerRequest?
ptrdiff_t | dsi_nvlist_align_
| Used to pad CDR stream if we have used DSI.
CORBA::Boolean | argument_flag_
size_t | interceptor_count_
TAO_PICurrent_Impl | rs_pi_current_
CORBA::OctetSeq_var | result_seq_
| Used by the FTORB.

## Friends

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 | ( | void |  | ) | `[virtual]`

| Destructor.

## Member Function Documentation

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

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

| Get/Set operations for the argument_flag.

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

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

| Return the ORB core pointer member.

ACE_INLINE TAO_OutputCDR & TAO_ServerRequest::outgoing | ( | void |  | ) |

| Retrieve the outgoing stream.

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_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_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_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:

- TAO_Server_Request.h
- TAO_Server_Request.cpp
- TAO_Server_Request.i