summaryrefslogtreecommitdiff
path: root/TAO/tao/Transport.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Transport.h')
-rw-r--r--TAO/tao/Transport.h40
1 files changed, 35 insertions, 5 deletions
diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h
index 31ebe4e18a9..dc542568f9b 100644
--- a/TAO/tao/Transport.h
+++ b/TAO/tao/Transport.h
@@ -649,6 +649,7 @@ protected:
*/
virtual int register_handler_i (void) = 0;
+#if 0
/// Called by the handle_input_i (). This method is used to parse
/// message read by the handle_input_i () call. It also decides
/// whether the message needs consolidation before processing.
@@ -696,16 +697,14 @@ protected:
/// them, atleast at the head of them.
int consolidate_extra_messages (ACE_Message_Block &incoming,
TAO_Resume_Handle &rh);
+#endif
/// Process the message by sending it to the higher layers of the
/// ORB.
int process_parsed_messages (TAO_Queued_Data *qd,
TAO_Resume_Handle &rh);
- /// Make a queued data from the <incoming> message block
- TAO_Queued_Data *make_queued_data (ACE_Message_Block &incoming);
-
- /// Implement send_message_shared() assuming the handler_lock_ is
+ /// Implement send_message_shared() assuming the handler_lock_ is
/// held.
int send_message_shared_i (TAO_Stub *stub,
int message_semantics,
@@ -763,6 +762,34 @@ public:
int handle_timeout (const ACE_Time_Value &current_time,
const void* act);
+
+ /*!
+ \name Incoming Queue Methods
+ */
+ //@{
+ /*!
+ \brief Queue up \a queueable_message as a completely-received incoming message.
+
+ This method queues up a completely-received queueable GIOP message
+ (i.e., it must be dynamically-allocated). It does not assemble a
+ complete GIOP message; that should be done prior to calling this
+ message, and is currently done in handle_input_i.
+
+ This does, however, assure that a completely-received GIOP
+ FRAGMENT gets associated with any previously-received related
+ fragments. It does this through collaboration with the messaging
+ object (since fragment reassembly is protocol specific).
+
+ \param queueable_message instance as returned by one of the TAO_Queued_Data::make_*_message that's been completely received
+
+ \return 0 successfully enqueued \a queueable_message
+
+ \return -1 failed to enqueue \a queueable_message
+ \todo How do we indicate \em what may have failed?
+ */
+ int enqueue_incoming_message (TAO_Queued_Data *queueable_message);
+ //@}
+
private:
/// Helper method that returns the Transport Cache Manager.
@@ -939,9 +966,12 @@ protected:
TAO_Queued_Message *head_;
TAO_Queued_Message *tail_;
- /// Queue of the incoming messages..
+ /// Queue of the completely-received incoming messages..
TAO_Incoming_Message_Queue incoming_message_queue_;
+ /// Place to hold a partially-received (waiting-to-be-completed) message
+ TAO_Queued_Data * uncompleted_message_;
+
/// The queue will start draining no later than <queing_deadline_>
/// *if* the deadline is
ACE_Time_Value current_deadline_;