#include <GIOP_Message_Base.h>
Inheritance diagram for TAO_GIOP_Message_Base:
Public Methods | |
TAO_GIOP_Message_Base (TAO_ORB_Core *orb_core, size_t input_cdr_size=ACE_CDR::DEFAULT_BUFSIZE) | |
Constructor. More... | |
virtual | ~TAO_GIOP_Message_Base (void) |
Dtor. More... | |
virtual void | init (CORBA::Octet major, CORBA::Octet minor) |
Initialize the underlying state object based on the <major> and <minor> revision numbers. More... | |
virtual void | reset (void) |
Reset the messaging the object. More... | |
virtual int | generate_request_header (TAO_Operation_Details &op, TAO_Target_Specification &spec, TAO_OutputCDR &cdr) |
Write the RequestHeader in to the <cdr> stream. The underlying implementation of the mesaging should do the right thing. More... | |
virtual int | generate_locate_request_header (TAO_Operation_Details &op, TAO_Target_Specification &spec, TAO_OutputCDR &cdr) |
Write the RequestHeader in to the <cdr> stream. More... | |
virtual int | generate_reply_header (TAO_OutputCDR &cdr, TAO_Pluggable_Reply_Params_Base ¶ms) |
Write the reply header. More... | |
virtual int | read_message (TAO_Transport *transport, int block=0, ACE_Time_Value *max_wait_time=0) |
This method reads the message on the connection. Returns 0 when there is short read on the connection. Returns 1 when the full message is read and handled. Returns -1 on errors. If <block> is 1, then reply is read in a blocking manner. More... | |
virtual int | format_message (TAO_OutputCDR &cdr) |
Format the message. As we have not written the message length in the header, we make use of this oppurtunity to insert and format the message. More... | |
virtual int | parse_incoming_messages (ACE_Message_Block &message_block) |
Parse the incoming messages.. More... | |
virtual ssize_t | missing_data (ACE_Message_Block &message_block) |
Calculate the amount of data that is missing in the <incoming> message block. More... | |
virtual int | extract_next_message (ACE_Message_Block &incoming, TAO_Queued_Data *&qd) |
virtual int | consolidate_node (TAO_Queued_Data *qd, ACE_Message_Block &incoming) |
Check whether the node <qd> needs consolidation from <incoming>. More... | |
virtual void | get_message_data (TAO_Queued_Data *qd) |
Get the details of the message parsed through the <qd>. More... | |
virtual int | consolidate_fragments (TAO_Queued_Data *dqd, const TAO_Queued_Data *sqd) |
Bala:Docu?? More... | |
virtual int | process_request_message (TAO_Transport *transport, TAO_Queued_Data *qd) |
Process the request message that we have received on the connection. More... | |
virtual int | process_reply_message (TAO_Pluggable_Reply_Params &reply_info, TAO_Queued_Data *qd) |
Parse the reply message that we received and return the reply information though <reply_info>. More... | |
virtual int | generate_exception_reply (TAO_OutputCDR &cdr, TAO_Pluggable_Reply_Params_Base ¶ms, CORBA::Exception &x) |
Generate a reply message with the exception <ex>. More... | |
virtual size_t | header_length (void) const |
Header length. More... | |
Protected Methods | |
int | process_request (TAO_Transport *transport, TAO_InputCDR &input, TAO_OutputCDR &output, TAO_GIOP_Message_Generator_Parser *) |
Processes the <GIOP_REQUEST> messages. More... | |
int | process_locate_request (TAO_Transport *transport, TAO_InputCDR &input, TAO_OutputCDR &output, TAO_GIOP_Message_Generator_Parser *) |
Processes the <GIOP_LOCATE_REQUEST> messages. More... | |
void | set_state (CORBA::Octet major, CORBA::Octet minor, TAO_GIOP_Message_Generator_Parser *&) |
Set the state. More... | |
void | dump_msg (const char *label, const u_char *ptr, size_t len) |
Print out a debug messages.. More... | |
TAO_Pluggable_Message_Type | message_type (TAO_GIOP_Message_State &state) |
Get the message type. The return value would be one of the following: TAO_PLUGGABLE_MESSAGE_REQUEST, TAO_PLUGGABLE_MESSAGE_REPLY, TAO_PLUGGABLE_MESSAGE_CLOSECONNECTION, TAO_PLUGGABLE_MESSAGE_MESSAGE_ERROR. More... | |
Private Methods | |
int | write_protocol_header (TAO_GIOP_Message_Type t, TAO_OutputCDR &msg) |
Writes the GIOP header in to <msg> NOTE: If the GIOP header happens to change in the future, we can push this method in to the generator_parser classes. More... | |
int | make_send_locate_reply (TAO_Transport *transport, TAO_GIOP_Locate_Request_Header &request, TAO_GIOP_Locate_Status_Msg &status, TAO_OutputCDR &output, TAO_GIOP_Message_Generator_Parser *) |
Make a <GIOP_LOCATEREPLY> and hand that over to the transport so that it can be sent over the connection. NOTE:As on date 1.1 & 1.2 seem to have similar headers. Till an unmanageable difference comes let them be implemented here. More... | |
int | send_error (TAO_Transport *transport) |
Send error messages. More... | |
void | send_close_connection (const TAO_GIOP_Message_Version &version, TAO_Transport *transport, void *ctx) |
Close a connection, first sending GIOP::CloseConnection. More... | |
int | send_reply_exception (TAO_Transport *transport, TAO_OutputCDR &cdr, CORBA::ULong request_id, IOP::ServiceContextList *svc_info, CORBA::Exception *x) |
We must send a LocateReply through <transport>, this request resulted in some kind of exception. More... | |
virtual int | generate_locate_reply_header (TAO_OutputCDR &, TAO_Pluggable_Reply_Params_Base &) |
Write the locate reply header. More... | |
virtual int | is_ready_for_bidirectional (TAO_OutputCDR &msg) |
Is the messaging object ready for processing BiDirectional request/response? More... | |
TAO_Queued_Data * | make_queued_data (size_t sz) |
Creates a new node for the queue with a message block in the node of size <sz>.. More... | |
Private Attributes | |
TAO_ORB_Core * | orb_core_ |
Cached ORB_Core pointer... More... | |
TAO_GIOP_Message_State | message_state_ |
Thr message handler object that does reading and parsing of the incoming messages. More... | |
TAO_GIOP_Message_Generator_Parser_Impl | tao_giop_impl_ |
All the implementations of GIOP message generator and parsers. More... |
This class will hold the specific details common to all the GIOP versions. Some of them which are here may be shifted if things start changing between versions. This class uses the TAO_GIOP_Message_Reactive_Handler to read and parse messages.
|
Constructor.
|
|
Dtor.
|
|
Bala:Docu?? @ Reimplemented from TAO_Pluggable_Messaging. |
|
Check whether the node <qd> needs consolidation from <incoming>.
Reimplemented from TAO_Pluggable_Messaging. |
|
Print out a debug messages..
|
|
Reimplemented from TAO_Pluggable_Messaging. |
|
Format the message. As we have not written the message length in the header, we make use of this oppurtunity to insert and format the message.
Reimplemented from TAO_Pluggable_Messaging. |
|
Generate a reply message with the exception <ex>.
Reimplemented from TAO_Pluggable_Messaging. |
|
Write the locate reply header.
Reimplemented from TAO_Pluggable_Messaging. |
|
Write the RequestHeader in to the <cdr> stream.
Reimplemented from TAO_Pluggable_Messaging. |
|
Write the reply header.
Reimplemented from TAO_Pluggable_Messaging. |
|
Write the RequestHeader in to the <cdr> stream. The underlying implementation of the mesaging should do the right thing.
Reimplemented from TAO_Pluggable_Messaging. |
|
Get the details of the message parsed through the <qd>.
Reimplemented from TAO_Pluggable_Messaging. |
|
Header length.
Reimplemented from TAO_Pluggable_Messaging. |
|
Initialize the underlying state object based on the <major> and <minor> revision numbers.
Reimplemented from TAO_Pluggable_Messaging. |
|
Is the messaging object ready for processing BiDirectional request/response?
Reimplemented from TAO_Pluggable_Messaging. |
|
Creates a new node for the queue with a message block in the node of size <sz>..
|
|
Make a <GIOP_LOCATEREPLY> and hand that over to the transport so that it can be sent over the connection. NOTE:As on date 1.1 & 1.2 seem to have similar headers. Till an unmanageable difference comes let them be implemented here.
|
|
Get the message type. The return value would be one of the following: TAO_PLUGGABLE_MESSAGE_REQUEST, TAO_PLUGGABLE_MESSAGE_REPLY, TAO_PLUGGABLE_MESSAGE_CLOSECONNECTION, TAO_PLUGGABLE_MESSAGE_MESSAGE_ERROR.
|
|
Calculate the amount of data that is missing in the <incoming> message block.
Reimplemented from TAO_Pluggable_Messaging. |
|
Parse the incoming messages..
Reimplemented from TAO_Pluggable_Messaging. |
|
Processes the <GIOP_LOCATE_REQUEST> messages.
|
|
Parse the reply message that we received and return the reply information though <reply_info>.
Reimplemented from TAO_Pluggable_Messaging. |
|
Processes the <GIOP_REQUEST> messages.
|
|
Process the request message that we have received on the connection.
Reimplemented from TAO_Pluggable_Messaging. |
|
This method reads the message on the connection. Returns 0 when there is short read on the connection. Returns 1 when the full message is read and handled. Returns -1 on errors. If <block> is 1, then reply is read in a blocking manner.
Reimplemented from TAO_Pluggable_Messaging. |
|
Reset the messaging the object.
Reimplemented from TAO_Pluggable_Messaging. |
|
Close a connection, first sending GIOP::CloseConnection.
|
|
Send error messages.
|
|
We must send a LocateReply through <transport>, this request resulted in some kind of exception.
|
|
Set the state.
|
|
Writes the GIOP header in to <msg> NOTE: If the GIOP header happens to change in the future, we can push this method in to the generator_parser classes.
|
|
Thr message handler object that does reading and parsing of the incoming messages.
|
|
Cached ORB_Core pointer...
|
|
All the implementations of GIOP message generator and parsers.
|