#include <GIOP_Message_Generator_Parser.h>
Inheritance diagram for TAO_GIOP_Message_Generator_Parser:
Public Member Functions | |
virtual | ~TAO_GIOP_Message_Generator_Parser (void) |
virtual bool | write_request_header (const TAO_Operation_Details &opdetails, TAO_Target_Specification &spec, TAO_OutputCDR &msg)=0 |
Write the request header in to msg. | |
virtual bool | write_locate_request_header (CORBA::ULong request_id, TAO_Target_Specification &spec, TAO_OutputCDR &msg)=0 |
Write the LocateRequest header. | |
virtual bool | write_reply_header (TAO_OutputCDR &output, TAO_Pluggable_Reply_Params_Base &reply)=0 |
Write the reply header in to output. | |
virtual bool | write_locate_reply_mesg (TAO_OutputCDR &output, CORBA::ULong request_id, TAO_GIOP_Locate_Status_Msg &status)=0 |
Writes the locate _reply message in to the output. | |
virtual bool | write_fragment_header (TAO_OutputCDR &cdr, CORBA::ULong request_id)=0 |
virtual int | parse_request_header (TAO_ServerRequest &)=0 |
virtual int | parse_locate_header (TAO_GIOP_Locate_Request_Header &)=0 |
virtual int | parse_reply (TAO_InputCDR &input, TAO_Pluggable_Reply_Params ¶ms) |
Parse the reply message. | |
virtual int | parse_locate_reply (TAO_InputCDR &input, TAO_Pluggable_Reply_Params ¶ms) |
Parse the locate reply message from the server. | |
virtual CORBA::Octet | major_version (void) const =0 |
Our versions. | |
virtual CORBA::Octet | minor_version (void) const =0 |
virtual bool | is_ready_for_bidirectional (void) const |
virtual size_t | fragment_header_length (void) const =0 |
The header length of a fragment. |
Version specific classes would inherit from this class. Strategy to determine which version of the GIOP request have we received and which version do we need to use to send messages.
Definition at line 48 of file GIOP_Message_Generator_Parser.h.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_GIOP_Message_Generator_Parser::~TAO_GIOP_Message_Generator_Parser | ( | void | ) | [virtual] |
virtual size_t TAO_GIOP_Message_Generator_Parser::fragment_header_length | ( | void | ) | const [pure virtual] |
The header length of a fragment.
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::fragment_header_length().
bool TAO_GIOP_Message_Generator_Parser::is_ready_for_bidirectional | ( | void | ) | const [virtual] |
Is the messaging object ready for processing BiDirectional request/response?
Reimplemented in TAO_GIOP_Message_Generator_Parser_12.
Definition at line 100 of file GIOP_Message_Generator_Parser.cpp.
Referenced by TAO_GIOP_Message_Base::is_ready_for_bidirectional().
virtual CORBA::Octet TAO_GIOP_Message_Generator_Parser::major_version | ( | void | ) | const [pure virtual] |
Our versions.
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
virtual CORBA::Octet TAO_GIOP_Message_Generator_Parser::minor_version | ( | void | ) | const [pure virtual] |
virtual int TAO_GIOP_Message_Generator_Parser::parse_locate_header | ( | TAO_GIOP_Locate_Request_Header & | ) | [pure virtual] |
Parse the Loacte Request Header from the incoming stream. This will do a version specific parsing of the incoming Request header
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::process_locate_request().
int TAO_GIOP_Message_Generator_Parser::parse_locate_reply | ( | TAO_InputCDR & | input, | |
TAO_Pluggable_Reply_Params & | params | |||
) | [virtual] |
Parse the locate reply message from the server.
Reimplemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Definition at line 61 of file GIOP_Message_Generator_Parser.cpp.
References ACE_ERROR, ACE_TEXT, LM_ERROR, TAO_Pluggable_Reply_Params_Base::locate_reply_status(), ACE_InputCDR::read_ulong(), TAO_Pluggable_Reply_Params_Base::request_id_, and TAO_debug_level.
Referenced by TAO_GIOP_Message_Generator_Parser_12::parse_locate_reply(), TAO_GIOP_Message_Generator_Parser_10::parse_locate_reply(), and TAO_GIOP_Message_Base::process_reply_message().
00064 { 00065 // Read the request id 00066 if (!cdr.read_ulong (params.request_id_)) 00067 { 00068 if (TAO_debug_level > 0) 00069 ACE_ERROR ((LM_ERROR, 00070 ACE_TEXT ("TAO (%P|%t|%N|%l):parse_locate_reply, ") 00071 ACE_TEXT ("extracting request id\n"))); 00072 00073 return -1; 00074 } 00075 00076 // and the locate reply status type. status can be UNKNOWN_OBJECT, 00077 // OBJECT_HERE, OBJECT_FORWARD, OBJECT_FORWARD_PERM 00078 // LOC_SYSTEM_EXCEPTION, LOC_NEEDS_ADDRESSING_MODE 00079 00080 // Please note here that we are NOT converting to the Pluggable 00081 // messaging layer exception as this is GIOP specific. Not many 00082 // messaging protocols have the locate_* messages. 00083 CORBA::ULong locate_reply_status; 00084 if (!cdr.read_ulong (locate_reply_status)) 00085 { 00086 if (TAO_debug_level > 0) 00087 ACE_ERROR ((LM_ERROR, 00088 ACE_TEXT ("TAO N|(%P|%t|l) parse_locate_reply, ") 00089 ACE_TEXT ("extracting locate reply status\n"))); 00090 00091 return -1; 00092 } 00093 params.locate_reply_status (static_cast <GIOP::LocateStatusType> (locate_reply_status)); 00094 00095 return 0; 00096 00097 }
int TAO_GIOP_Message_Generator_Parser::parse_reply | ( | TAO_InputCDR & | input, | |
TAO_Pluggable_Reply_Params & | params | |||
) | [virtual] |
Parse the reply message.
Reimplemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Definition at line 23 of file GIOP_Message_Generator_Parser.cpp.
References ACE_ERROR, ACE_TEXT, LM_ERROR, ACE_InputCDR::read_ulong(), TAO_Pluggable_Reply_Params_Base::reply_status(), TAO_Pluggable_Reply_Params_Base::request_id_, and TAO_debug_level.
Referenced by TAO_GIOP_Message_Generator_Parser_12::parse_reply(), TAO_GIOP_Message_Generator_Parser_10::parse_reply(), and TAO_GIOP_Message_Base::process_reply_message().
00026 { 00027 // Read the request id 00028 if (!stream.read_ulong (params.request_id_)) 00029 { 00030 if (TAO_debug_level) 00031 { 00032 ACE_ERROR ((LM_ERROR, 00033 ACE_TEXT ("TAO (%P|%t) : TAO_GIOP_Message_Generator_Parser::parse_reply :") 00034 ACE_TEXT ("extracting request id\n"))); 00035 } 00036 return -1; 00037 } 00038 00039 // and the reply status type. status can be NO_EXCEPTION, 00040 // SYSTEM_EXCEPTION, USER_EXCEPTION, LOCATION_FORWARD, 00041 // LOCATION_FORWARD_PERM 00042 CORBA::ULong rep_stat = 0; 00043 if (!stream.read_ulong (rep_stat)) 00044 { 00045 if (TAO_debug_level > 0) 00046 { 00047 ACE_ERROR ((LM_ERROR, 00048 ACE_TEXT ("TAO (%P|%t) : TAO_GIOP_Message_Generator_Parser::parse_reply, ") 00049 ACE_TEXT ("extracting reply status\n"))); 00050 } 00051 return -1; 00052 } 00053 00054 params.reply_status (static_cast <GIOP::ReplyStatusType> (rep_stat)); 00055 00056 return 0; 00057 }
virtual int TAO_GIOP_Message_Generator_Parser::parse_request_header | ( | TAO_ServerRequest & | ) | [pure virtual] |
Parse the Request Header from the incoming stream. This will do a version specific parsing of the incoming Request header
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::process_request().
virtual bool TAO_GIOP_Message_Generator_Parser::write_fragment_header | ( | TAO_OutputCDR & | cdr, | |
CORBA::ULong | request_id | |||
) | [pure virtual] |
Write the GIOP fragment message header to the output CDR stream cdr.
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::generate_fragment_header().
virtual bool TAO_GIOP_Message_Generator_Parser::write_locate_reply_mesg | ( | TAO_OutputCDR & | output, | |
CORBA::ULong | request_id, | |||
TAO_GIOP_Locate_Status_Msg & | status | |||
) | [pure virtual] |
Writes the locate _reply message in to the output.
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::make_send_locate_reply().
virtual bool TAO_GIOP_Message_Generator_Parser::write_locate_request_header | ( | CORBA::ULong | request_id, | |
TAO_Target_Specification & | spec, | |||
TAO_OutputCDR & | msg | |||
) | [pure virtual] |
Write the LocateRequest header.
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::generate_locate_request_header().
virtual bool TAO_GIOP_Message_Generator_Parser::write_reply_header | ( | TAO_OutputCDR & | output, | |
TAO_Pluggable_Reply_Params_Base & | reply | |||
) | [pure virtual] |
Write the reply header in to output.
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::generate_reply_header().
virtual bool TAO_GIOP_Message_Generator_Parser::write_request_header | ( | const TAO_Operation_Details & | opdetails, | |
TAO_Target_Specification & | spec, | |||
TAO_OutputCDR & | msg | |||
) | [pure virtual] |
Write the request header in to msg.
Implemented in TAO_GIOP_Message_Generator_Parser_10, and TAO_GIOP_Message_Generator_Parser_12.
Referenced by TAO_GIOP_Message_Base::generate_request_header().