summaryrefslogtreecommitdiff
path: root/TAO/tao/Reply_Dispatcher.h
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-08 16:08:38 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-08 16:08:38 +0000
commit46b77cd85c8aa9137770c6d7e3af80f5fb54ff66 (patch)
tree3563b9d5cf940870cbf233c659fcc2794d6bbfff /TAO/tao/Reply_Dispatcher.h
parentc502d0c2e0588db1424983482721ae0f2aed1299 (diff)
downloadATCD-46b77cd85c8aa9137770c6d7e3af80f5fb54ff66.tar.gz
Change for DII deferred synchronous stuff.
Diffstat (limited to 'TAO/tao/Reply_Dispatcher.h')
-rw-r--r--TAO/tao/Reply_Dispatcher.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/TAO/tao/Reply_Dispatcher.h b/TAO/tao/Reply_Dispatcher.h
index ddb8b989595..127d698f35c 100644
--- a/TAO/tao/Reply_Dispatcher.h
+++ b/TAO/tao/Reply_Dispatcher.h
@@ -21,6 +21,7 @@
#define TAO_REPLY_DISPATCHER_H
#include "tao/GIOP.h"
+#include "tao/Request.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -205,6 +206,66 @@ private:
// Reply Handler passed in the Asynchronous Invocation.
};
+// *********************************************************************
+
+class TAO_Export TAO_DII_Deferred_Reply_Dispatcher : public TAO_Reply_Dispatcher
+{
+ // = TITLE
+ //
+ // Reply dispatcher for DII deferred requests.
+ //
+ // = DESCRIPTION
+ //
+
+public:
+ TAO_DII_Deferred_Reply_Dispatcher (const CORBA::Request_ptr req);
+ // Constructor.
+
+ virtual ~TAO_DII_Deferred_Reply_Dispatcher (void);
+ // Destructor.
+
+ CORBA::ULong reply_status (void) const;
+ // Get the reply status.
+
+ const TAO_GIOP_Version& version (void) const;
+ // Get the GIOP version
+
+ virtual int dispatch_reply (CORBA::ULong reply_status,
+ const TAO_GIOP_Version& version,
+ IOP::ServiceContextList& reply_ctx,
+ TAO_GIOP_Message_State* message_state);
+ // Dispatch the reply. This involves demarshalling the reply and
+ // calling the appropriate call back hook method on the reply
+ // handler.
+ // Return 1 on sucess, -1 on error.
+
+ virtual TAO_GIOP_Message_State *message_state (void);
+ // Return the message state.
+
+protected:
+ IOP::ServiceContextList reply_service_info_;
+ // The service context list
+ // Note, that this is not a reference as in
+ // the synchronous case. We own the reply_service_info
+ // because our TAO_Asynch_Invocation will go out
+ // of scope before we are done.
+
+private:
+ CORBA::ULong reply_status_;
+ // Reply or LocateReply status.
+
+ TAO_GIOP_Version version_;
+ // The version
+
+ 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 right? (Alex).
+
+ const CORBA::Request_ptr req_;
+ // Where the reply needs to go.
+};
+
# endif /* TAO_HAS_AMI_CALLBACK || TAO_HAS_AMI_POLLER */
#endif /* TAO_HAS_CORBA_MESSAGING */