summaryrefslogtreecommitdiff
path: root/TAO/tao/Reply_Dispatcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Reply_Dispatcher.h')
-rw-r--r--TAO/tao/Reply_Dispatcher.h50
1 files changed, 22 insertions, 28 deletions
diff --git a/TAO/tao/Reply_Dispatcher.h b/TAO/tao/Reply_Dispatcher.h
index 2edce87999e..f2dbc478ad2 100644
--- a/TAO/tao/Reply_Dispatcher.h
+++ b/TAO/tao/Reply_Dispatcher.h
@@ -53,13 +53,20 @@ public:
TAO_GIOP_Message_State* message_state) = 0;
// Dispatch the reply. Return 1 on sucess, -1 on error.
- virtual TAO_GIOP_Message_State *message_state (void);
+ virtual TAO_GIOP_Message_State *message_state (void) const;
// Get the Message State into which the reply has been read.
+ const IOP::ServiceContextList& reply_service_info () const;
+ // Accessing the reply service context list.
+
virtual int leader_follower_condition_variable (TAO_Transport *);
// Obtain the condition variable used in the Leader Follower Wait
// Strategy. This is valid only for the synchronous reply dispatcher
// and only when the Leader Follower wait strategy is used.
+
+protected:
+ IOP::ServiceContextList reply_service_info_;
+ // The service context list
};
// *********************************************************************
@@ -74,8 +81,7 @@ class TAO_Export TAO_Synch_Reply_Dispatcher : public TAO_Reply_Dispatcher
//
public:
- TAO_Synch_Reply_Dispatcher (TAO_ORB_Core *orb_core,
- IOP::ServiceContextList &sc);
+ TAO_Synch_Reply_Dispatcher (TAO_ORB_Core *orb_core);
// Constructor.
virtual ~TAO_Synch_Reply_Dispatcher (void);
@@ -96,7 +102,7 @@ public:
// stack.
// Return 1 on sucess, -1 on error.
- virtual TAO_GIOP_Message_State *message_state (void);
+ virtual TAO_GIOP_Message_State *message_state (void) const;
// Return the message state of this invocation.
virtual TAO_InputCDR &reply_cdr (void);
@@ -112,10 +118,6 @@ public:
// Obtain the condition variable used in the Leader Follower Wait
// Strategy.
-protected:
- IOP::ServiceContextList &reply_service_info_;
- // The service context list
-
private:
CORBA::ULong reply_status_;
// Reply or LocateReply status.
@@ -123,8 +125,13 @@ private:
TAO_GIOP_Version version_;
// The version
- TAO_GIOP_Message_State message_state_;
- // All the state required to receive the input...
+ TAO_GIOP_Message_State *message_state_;
+ // CDR stream for reading the input.
+ // @@ Carlos : message_state should go away. All we need is the
+ // reply cdr. Is that rite? (Alex).
+
+ TAO_InputCDR reply_cdr_;
+ // CDR where the reply message is placed.
int reply_received_;
// Flag that indicates the reply has been received.
@@ -138,11 +145,7 @@ private:
};
// *********************************************************************
-
-#if defined (TAO_HAS_CORBA_MESSAGING)
-
-# if defined (TAO_HAS_AMI_CALLBACK) || defined (TAO_HAS_AMI_POLLER)
-
+#if defined (TAO_HAS_CORBA_MESSAGING) && defined (TAO_POLLER)
class TAO_Export TAO_Asynch_Reply_Dispatcher : public TAO_Reply_Dispatcher
{
// = TITLE
@@ -154,9 +157,8 @@ class TAO_Export TAO_Asynch_Reply_Dispatcher : public TAO_Reply_Dispatcher
public:
TAO_Asynch_Reply_Dispatcher (const TAO_Reply_Handler_Skeleton &reply_handler_skel,
- Messaging::ReplyHandler_ptr reply_handler_ptr,
- IOP::ServiceContextList &sc);
- // Constructor.
+ Messaging::ReplyHandler_ptr reply_handler_ptr);
+ // Constructor.
virtual ~TAO_Asynch_Reply_Dispatcher (void);
// Destructor.
@@ -176,13 +178,9 @@ public:
// handler.
// Return 1 on sucess, -1 on error.
- virtual TAO_GIOP_Message_State *message_state (void);
+ virtual TAO_GIOP_Message_State *message_state (void) const;
// Return the message state.
-protected:
- IOP::ServiceContextList &reply_service_info_;
- // The service context list
-
private:
CORBA::ULong reply_status_;
// Reply or LocateReply status.
@@ -201,11 +199,7 @@ private:
Messaging::ReplyHandler_ptr reply_handler_;
// Reply Handler passed in the Asynchronous Invocation.
};
-
-# endif /* TAO_HAS_AMI_CALLBACK || TAO_HAS_AMI_POLLER */
-
-#endif /* TAO_HAS_CORBA_MESSAGING */
-
+#endif /* TAO_HAS_CORBA_MESSAGING && TAO_POLLER */
// *********************************************************************
#if defined (__ACE_INLINE__)