diff options
Diffstat (limited to 'TAO/tao/GIOP_Message_Base.h')
-rw-r--r-- | TAO/tao/GIOP_Message_Base.h | 52 |
1 files changed, 24 insertions, 28 deletions
diff --git a/TAO/tao/GIOP_Message_Base.h b/TAO/tao/GIOP_Message_Base.h index 7bf61e340f7..461673bd359 100644 --- a/TAO/tao/GIOP_Message_Base.h +++ b/TAO/tao/GIOP_Message_Base.h @@ -94,37 +94,35 @@ public: /// the message. virtual int format_message (TAO_OutputCDR &cdr); - /// Process the request message that we have received on the - /// connection - virtual int process_request_message (TAO_Transport *transport, - TAO_Queued_Data *qd); - - /*! - \brief Inspects the bytes in \param mb to see if they "look like" the beginning of a message. + /// Parse the incoming messages.. + virtual int parse_incoming_messages (ACE_Message_Block &message_block); - Inspects the bytes in \param mb, beginning at \code mb.rd_ptr, to - see if they look like the beginning of a message. If \code mb does not - contain less than \code header_length() bytes, this method cannot make a - complete evaluation, and returns a commensurate value. + /// Calculate the amount of data that is missing in the <incoming> + /// message block. + virtual ssize_t missing_data (ACE_Message_Block &message_block); - \return 1 \code header_length() bytes found, and constitute a valid header - \return 0 \code header_length() bytes found, and do not constitute a valid header - \return -1 not enough bytes available to make a determination of header validity + /* Extract the details of the next message from the <incoming> + * through <qd>. Returns 1 if there are more messages and returns a + * 0 if there are no more messages in <incoming>. */ - virtual int check_for_valid_header (const ACE_Message_Block &mb) const; + virtual int extract_next_message (ACE_Message_Block &incoming, + TAO_Queued_Data *&qd); - /*! - \brief Set fields in \param qd based on values derived from \param mb. + /// Check whether the node <qd> needs consolidation from <incoming> + virtual int consolidate_node (TAO_Queued_Data *qd, + ACE_Message_Block &incoming); - This function sets fields in \param qd based on values derived - from \param mb. It assumes that if the length of \param mb is - enough to hold a header, then the data in there can be trusted to - make sense. - */ - virtual void set_queued_data_from_message_header ( - TAO_Queued_Data *, - const ACE_Message_Block &mb) const; + /// Get the details of the message parsed through the <qd>. + virtual void get_message_data (TAO_Queued_Data *qd); + /// @@Bala:Docu?? + virtual int consolidate_fragments (TAO_Queued_Data *dqd, + const TAO_Queued_Data *sqd); + + /// Process the request message that we have received on the + /// connection + virtual int process_request_message (TAO_Transport *transport, + TAO_Queued_Data *qd); /// Parse the reply message that we received and return the reply @@ -176,7 +174,7 @@ protected: /// TAO_PLUGGABLE_MESSAGE_REPLY, /// TAO_PLUGGABLE_MESSAGE_CLOSECONNECTION, /// TAO_PLUGGABLE_MESSAGE_MESSAGE_ERROR. - TAO_Pluggable_Message_Type message_type (TAO_GIOP_Message_State &state) const; + TAO_Pluggable_Message_Type message_type (TAO_GIOP_Message_State &state); private: @@ -199,12 +197,10 @@ private: /// Send error messages int send_error (TAO_Transport *transport); -#if 0 /// Close a connection, first sending GIOP::CloseConnection. void send_close_connection (const TAO_GIOP_Message_Version &version, TAO_Transport *transport, void *ctx); -#endif /// We must send a LocateReply through <transport>, this request /// resulted in some kind of exception. |