summaryrefslogtreecommitdiff
path: root/TAO/tao/GIOP_Message_Base.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/GIOP_Message_Base.h')
-rw-r--r--TAO/tao/GIOP_Message_Base.h52
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.