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

TAO_Operation_Details Class Reference

Class with operation details. More...

#include <operation_details.h>

Collaboration diagram for TAO_Operation_Details:

Collaboration graph
[legend]
List of all members.

Public Methods

 TAO_Operation_Details (const char *name, CORBA::ULong len, CORBA::Boolean argument_flag)
 Constructor. More...

const char * opname (void) const
 Operation name. More...

CORBA::ULong opname_len (void) const
 Length of the operation name. More...

CORBA::Boolean argument_flag (void) const
 Return the flag that indicates whether the operation has any arguments. More...

void response_flags (CORBA::Octet flags)
 Set the response flags. More...

CORBA::Octet response_flags (void)
 Get the response flags. More...

CORBA::Octet response_flags (void) const
IOP::ServiceContextListrequest_service_info (void)
 Get the service context list. More...

const IOP::ServiceContextListrequest_service_info (void) const
IOP::ServiceContextListreply_service_info (void)
const IOP::ServiceContextListreply_service_info (void) const
TAO_Service_Contextrequest_service_context (void)
 Access the TAO_Service_Context. More...

const TAO_Service_Contextrequest_service_context (void) const
TAO_Service_Contextreply_service_context (void)
const TAO_Service_Contextreply_service_context (void) const
void request_id (CORBA::ULong id)
void modify_request_id (int originator)
 Modify request id's for a BiDirectional setup. More...

CORBA::ULong request_id (void)
 Return the request ID associated with the operation. More...

CORBA::ULong request_id (void) const
TAO_Target_Specification::TAO_Target_Address addressing_mode (void)
 Accessor method for the addressing mode. More...

TAO_Target_Specification::TAO_Target_Address addressing_mode (void) const
void addressing_mode (CORBA::Short addr)
 Set method for the addressing mode. More...


Private Attributes

const char * opname_
 Name of the operation being invoked. More...

CORBA::ULong opname_len_
 Precalculated length of opname_. More...

CORBA::ULong request_id_
 Request ID of this operation. More...

CORBA::Boolean argument_flag_
CORBA::Octet response_flags_
 Response flags. More...

TAO_Service_Context request_service_info_
 The ServiceContextList sent to the server side. Only valid when sending a request. More...

TAO_Service_Context reply_service_info_
 The ServiceContextList received from the server side. Only valid when sending a request. More...

TAO_Target_Specification::TAO_Target_Address addressing_mode_
 Addressing mode for this request. More...


Detailed Description

Class with operation details.

This class stores some of the "operation" details that would be required by the invocation classes. This class is in its infancy now but I expect this one to grow as we come with different varieties of use cases.

Definition at line 41 of file operation_details.h.


Constructor & Destructor Documentation

ACE_INLINE TAO_Operation_Details::TAO_Operation_Details const char *    name,
CORBA::ULong    len,
CORBA::Boolean    argument_flag
 

Constructor.

Definition at line 6 of file operation_details.i.

00009   : opname_ (name),
00010     opname_len_ (len),
00011     request_id_ (0),
00012     argument_flag_ (argument_flag),
00013     response_flags_ (0),
00014     addressing_mode_ (TAO_Target_Specification::Key_Addr)
00015 {
00016 }


Member Function Documentation

ACE_INLINE void TAO_Operation_Details::addressing_mode CORBA::Short    addr
 

Set method for the addressing mode.

Definition at line 151 of file operation_details.i.

References addressing_mode_, TAO_Target_Specification::Key_Addr, TAO_Target_Specification::Profile_Addr, and TAO_Target_Specification::Reference_Addr.

00152 {
00153   if (mode == 0)
00154     this->addressing_mode_ = TAO_Target_Specification::Key_Addr;
00155   else if (mode == 1)
00156     this->addressing_mode_ = TAO_Target_Specification::Profile_Addr;
00157   else if (mode == 2)
00158     this->addressing_mode_ = TAO_Target_Specification::Reference_Addr;
00159 }

ACE_INLINE TAO_Target_Specification::TAO_Target_Address TAO_Operation_Details::addressing_mode void    const
 

Definition at line 145 of file operation_details.i.

References addressing_mode_.

00146 {
00147   return this->addressing_mode_;
00148 }

ACE_INLINE TAO_Target_Specification::TAO_Target_Address TAO_Operation_Details::addressing_mode void   
 

Accessor method for the addressing mode.

Definition at line 139 of file operation_details.i.

References addressing_mode_.

00140 {
00141   return this->addressing_mode_;
00142 }

ACE_INLINE CORBA::Boolean TAO_Operation_Details::argument_flag void    const
 

Return the flag that indicates whether the operation has any arguments.

Definition at line 31 of file operation_details.i.

References argument_flag_.

Referenced by TAO_GIOP_Message_Generator_Parser_12::write_request_header.

00032 {
00033   return this->argument_flag_;
00034 }

ACE_INLINE void TAO_Operation_Details::modify_request_id int    originator
 

Modify request id's for a BiDirectional setup.

Definition at line 95 of file operation_details.i.

References ACE_EVEN, ACE_ODD, and request_id_.

Referenced by TAO_IIOP_Transport::generate_request_header.

00096 {
00097   // originator ==  1 --> originating side
00098   // originator ==  0 --> other side
00099   // originator == -1 --> no bi-directional connection was negotiated
00100 
00101   // The originating side must have an even request ID, and the other
00102   // side must have an odd request ID.  Make sure that is the case.
00103   if ((originator == 1 && ACE_ODD (this->request_id_))
00104       || (originator == 0 && ACE_EVEN (this->request_id_)))
00105     ++(this->request_id_);
00106 }

ACE_INLINE const char * TAO_Operation_Details::opname void    const
 

Operation name.

Definition at line 19 of file operation_details.i.

References opname_.

Referenced by TAO_GIOP_Invocation::operation, TAO_GIOP_Message_Generator_Parser_12::write_request_header, and TAO_GIOP_Message_Generator_Parser_10::write_request_header.

00020 {
00021   return this->opname_;
00022 }

ACE_INLINE CORBA::ULong TAO_Operation_Details::opname_len void    const
 

Length of the operation name.

Definition at line 25 of file operation_details.i.

References opname_len_.

Referenced by TAO_GIOP_Message_Generator_Parser_12::write_request_header, and TAO_GIOP_Message_Generator_Parser_10::write_request_header.

00026 {
00027   return this->opname_len_;
00028 }

ACE_INLINE const TAO_Service_Context & TAO_Operation_Details::reply_service_context void    const
 

Definition at line 69 of file operation_details.i.

References reply_service_info_.

00070 {
00071   return this->reply_service_info_;
00072 }

ACE_INLINE TAO_Service_Context & TAO_Operation_Details::reply_service_context void   
 

Definition at line 63 of file operation_details.i.

References reply_service_info_.

Referenced by TAO_GIOP_Invocation::reply_service_context, and reply_service_info.

00064 {
00065   return this->reply_service_info_;
00066 }

ACE_INLINE const IOP::ServiceContextList & TAO_Operation_Details::reply_service_info void    const
 

Definition at line 82 of file operation_details.i.

References reply_service_context, and TAO_Service_Context::service_info.

00083 {
00084   // @@ This should go ...
00085   return this->reply_service_context ().service_info ();
00086 }

ACE_INLINE IOP::ServiceContextList & TAO_Operation_Details::reply_service_info void   
 

Definition at line 75 of file operation_details.i.

References reply_service_context, and TAO_Service_Context::service_info.

00076 {
00077   // @@ This should go ...
00078   return this->reply_service_context ().service_info ();
00079 }

ACE_INLINE CORBA::ULong TAO_Operation_Details::request_id void    const
 

Definition at line 115 of file operation_details.i.

References request_id_.

00116 {
00117   return this->request_id_;
00118 }

ACE_INLINE CORBA::ULong TAO_Operation_Details::request_id void   
 

Return the request ID associated with the operation.

Definition at line 109 of file operation_details.i.

References request_id_.

00110 {
00111   return this->request_id_;
00112 }

ACE_INLINE void TAO_Operation_Details::request_id CORBA::ULong    id
 

Definition at line 89 of file operation_details.i.

References request_id_.

Referenced by TAO_GIOP_Message_Lite::generate_locate_request_header, TAO_GIOP_Message_Base::generate_locate_request_header, TAO_GIOP_Invocation::request_id, TAO_GIOP_Message_Generator_Parser_12::write_request_header, and TAO_GIOP_Message_Generator_Parser_10::write_request_header.

00090 {
00091   this->request_id_ = id;
00092 }

ACE_INLINE const TAO_Service_Context & TAO_Operation_Details::request_service_context void    const
 

Definition at line 43 of file operation_details.i.

References request_service_info_.

00044 {
00045   return this->request_service_info_;
00046 }

ACE_INLINE TAO_Service_Context & TAO_Operation_Details::request_service_context void   
 

Access the TAO_Service_Context.

Definition at line 37 of file operation_details.i.

References request_service_info_.

Referenced by TAO_Codeset_Manager::generate_service_context, TAO_GIOP_Invocation::request_service_context, request_service_info, and TAO_IIOP_Transport::set_bidir_context_info.

00038 {
00039   return this->request_service_info_;
00040 }

ACE_INLINE const IOP::ServiceContextList & TAO_Operation_Details::request_service_info void    const
 

Definition at line 56 of file operation_details.i.

References request_service_context, and TAO_Service_Context::service_info.

00057 {
00058   // @@ This should go ...
00059   return this->request_service_context ().service_info ();
00060 }

ACE_INLINE IOP::ServiceContextList & TAO_Operation_Details::request_service_info void   
 

Get the service context list.

Definition at line 49 of file operation_details.i.

References request_service_context, and TAO_Service_Context::service_info.

Referenced by TAO_GIOP_Message_Generator_Parser_12::write_request_header, and TAO_GIOP_Message_Generator_Parser_10::write_request_header.

00050 {
00051   // @@ This should go ...
00052   return this->request_service_context ().service_info ();
00053 }

ACE_INLINE CORBA::Octet TAO_Operation_Details::response_flags void    const
 

Definition at line 133 of file operation_details.i.

References response_flags_.

00134 {
00135   return this->response_flags_;
00136 }

ACE_INLINE CORBA::Octet TAO_Operation_Details::response_flags void   
 

Get the response flags.

Definition at line 127 of file operation_details.i.

References response_flags_.

00128 {
00129   return this->response_flags_;
00130 }

ACE_INLINE void TAO_Operation_Details::response_flags CORBA::Octet    flags
 

Set the response flags.

Definition at line 121 of file operation_details.i.

References response_flags_.

Referenced by TAO_GIOP_Message_Generator_Parser_12::write_request_header, and TAO_GIOP_Message_Generator_Parser_10::write_request_header.

00122 {
00123   this->response_flags_ = flags;
00124 }


Member Data Documentation

TAO_Target_Specification::TAO_Target_Address TAO_Operation_Details::addressing_mode_ [private]
 

Addressing mode for this request.

Definition at line 132 of file operation_details.h.

Referenced by addressing_mode.

CORBA::Boolean TAO_Operation_Details::argument_flag_ [private]
 

Flag that indicates whether the operation has any arguments. If there are any arguments the flag will have a value of 1, 0 otherwise.

Definition at line 112 of file operation_details.h.

Referenced by argument_flag.

const char* TAO_Operation_Details::opname_ [private]
 

Name of the operation being invoked.

Definition at line 99 of file operation_details.h.

Referenced by opname.

CORBA::ULong TAO_Operation_Details::opname_len_ [private]
 

Precalculated length of opname_.

Definition at line 102 of file operation_details.h.

Referenced by opname_len.

TAO_Service_Context TAO_Operation_Details::reply_service_info_ [private]
 

The ServiceContextList received from the server side. Only valid when sending a request.

Definition at line 123 of file operation_details.h.

Referenced by reply_service_context.

CORBA::ULong TAO_Operation_Details::request_id_ [private]
 

Request ID of this operation.

Definition at line 105 of file operation_details.h.

Referenced by modify_request_id, and request_id.

TAO_Service_Context TAO_Operation_Details::request_service_info_ [private]
 

The ServiceContextList sent to the server side. Only valid when sending a request.

Definition at line 119 of file operation_details.h.

Referenced by request_service_context.

CORBA::Octet TAO_Operation_Details::response_flags_ [private]
 

Response flags.

Definition at line 115 of file operation_details.h.

Referenced by response_flags.


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 15:29:47 2003 for TAO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002