=default for generated implementation copy ctor
[ACE_TAO.git] / TAO / tao / DynamicInterface / DII_Reply_Dispatcher.h
blobd516a6c03a44e418e614b381df92474a4799d086
1 // -*- C++ -*-
3 //=============================================================================
4 /**
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)
20 # 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
33 class TAO_ORB_Core;
35 /**
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
43 public:
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 &param);
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 &)
56 return 0;
59 protected:
60 /// Destructor.
61 ~TAO_DII_Deferred_Reply_Dispatcher () = default;
63 private:
64 /// Where the reply needs to go.
65 CORBA::Request_var req_;
68 #if defined (TAO_HAS_AMI)
69 /**
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
77 public:
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 &param);
85 virtual void connection_closed ();
87 private:
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.
93 ACE_Data_Block db_;
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 */