3 //=============================================================================
5 * @file DII_Reply_Dispatcher.h
7 * @brief Dispatch the reply appropriately.
9 * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
12 #ifndef TAO_DII_REPLY_DISPATCHER_H
13 #define TAO_DII_REPLY_DISPATCHER_H
15 #include /**/ "ace/pre.h"
17 #include "tao/DynamicInterface/dynamicinterface_export.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "tao/orbconf.h"
24 #include "tao/Asynch_Reply_Dispatcher_Base.h"
25 #include "tao/DynamicInterface/Request.h"
27 #if defined (TAO_HAS_AMI)
28 #include "tao/Messaging/Messaging.h"
29 #endif /* TAO_HAS_AMI */
31 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
36 * @class TAO_DII_Deferred_Reply_Dispatcher
38 * @brief Reply dispatcher for DII deferred requests.
40 class TAO_DynamicInterface_Export TAO_DII_Deferred_Reply_Dispatcher
41 : public TAO_Asynch_Reply_Dispatcher_Base
44 TAO_DII_Deferred_Reply_Dispatcher (CORBA::Request_ptr req
,
45 TAO_ORB_Core
*orb_core
);
47 /// The Reply_Dispatcher methods
48 virtual int dispatch_reply (TAO_Pluggable_Reply_Params
¶m
);
50 virtual void connection_closed ();
52 /// The following methods are not needed for this class..
53 virtual void reply_timed_out () {}
54 virtual long schedule_timer (CORBA::ULong
, const ACE_Time_Value
&)
61 ~TAO_DII_Deferred_Reply_Dispatcher () = default;
64 /// Where the reply needs to go.
65 CORBA::Request_var req_
;
68 #if defined (TAO_HAS_AMI)
70 * @class TAO_DII_Asynch_Reply_Dispatcher
72 * @brief Reply dispatcher for DII asynch requests.
74 class TAO_DynamicInterface_Export TAO_DII_Asynch_Reply_Dispatcher
75 : public TAO_Asynch_Reply_Dispatcher_Base
78 TAO_DII_Asynch_Reply_Dispatcher (const Messaging::ReplyHandler_ptr callback
,
79 TAO_ORB_Core
*orb_core
);
80 virtual ~TAO_DII_Asynch_Reply_Dispatcher ();
82 /// The Reply_Dispatcher methods
83 virtual int dispatch_reply (TAO_Pluggable_Reply_Params
¶m
);
85 virtual void connection_closed ();
88 /// The buffer that is used to initialise the data block
89 char buf_
[ACE_CDR::DEFAULT_BUFSIZE
];
91 /// Datablock that is created on the stack to initialise the CDR
92 /// stream underneath.
95 /// CDR stream for reading the input.
96 TAO_InputCDR reply_cdr_
;
98 /// Where the reply needs to go.
99 const Messaging::ReplyHandler_ptr callback_
;
101 #endif /* TAO_HAS_AMI */
103 TAO_END_VERSIONED_NAMESPACE_DECL
105 #include /**/ "ace/post.h"
107 #endif /* TAO_REPLY_DISPATCHER_H */