Use =default for skeleton copy constructor
[ACE_TAO.git] / TAO / tao / DynamicInterface / DII_Reply_Handler.h
blob4a673b0ee8a3ad11ae6907a2b712a8ce245ff31d
1 // -*- C++ -*-
3 //==============================================================
4 /**
5 * @file DII_Reply_Handler.h
7 * @brief Handler of DII twoway asynch replies type.
8 */
9 // =============================================================
11 #ifndef TAO_DII_REPLY_HANDLER_H
12 #define TAO_DII_REPLY_HANDLER_H
13 #include /**/ "ace/pre.h"
15 #include "tao/orbconf.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
18 # pragma once
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include "tao/LocalObject.h"
22 #include "dynamicinterface_export.h"
24 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
26 /// Forward declaration
27 class TAO_DII_Reply_Handler;
28 typedef TAO_DII_Reply_Handler* TAO_DII_Reply_Handler_ptr;
30 /**
31 * @class TAO_DII_Reply_Handler_var
33 * @brief The T_var class for reply handler
35 * As any other pseudo object, this class has a T_var class too.
37 class TAO_DynamicInterface_Export TAO_DII_Reply_Handler_var
39 public:
40 TAO_DII_Reply_Handler_var ();
41 TAO_DII_Reply_Handler_var (TAO_DII_Reply_Handler_ptr);
42 TAO_DII_Reply_Handler_var (const TAO_DII_Reply_Handler_var &);
43 ~TAO_DII_Reply_Handler_var ();
45 TAO_DII_Reply_Handler_var &operator= (TAO_DII_Reply_Handler_ptr);
46 TAO_DII_Reply_Handler_var &operator= (const TAO_DII_Reply_Handler_var &);
47 TAO_DII_Reply_Handler_ptr operator-> () const;
49 operator const TAO_DII_Reply_Handler_ptr &() const;
50 operator TAO_DII_Reply_Handler_ptr &();
52 TAO_DII_Reply_Handler_ptr in () const;
53 TAO_DII_Reply_Handler_ptr &inout ();
54 TAO_DII_Reply_Handler_ptr &out ();
55 TAO_DII_Reply_Handler_ptr _retn ();
56 TAO_DII_Reply_Handler_ptr ptr () const;
58 private:
59 TAO_DII_Reply_Handler_ptr ptr_;
62 /**
63 * @class TAO_DII_Reply_Handler
65 * @brief The class for DII reply handler
67 * Provides a way to create requests and populate it with parameters for
68 * use in the Dynamic Invocation Interface.
70 class TAO_DynamicInterface_Export TAO_DII_Reply_Handler
71 : public virtual ::CORBA::LocalObject
73 public:
74 TAO_DII_Reply_Handler () = default;
75 virtual ~TAO_DII_Reply_Handler ();
77 /// Callback method for asynchronous requests.
78 virtual void handle_response (TAO_InputCDR &incoming) = 0;
80 virtual void handle_excep (TAO_InputCDR &incoming,
81 CORBA::ULong reply_status) = 0;
83 /// Handle a location forward message. This one has a default method
84 /// supplied that simply forwards to the handle_response, since that
85 /// is what the legacy code did. This way we maintain backwards
86 /// compatibility.
87 virtual void handle_location_forward (TAO_InputCDR &incoming,
88 CORBA::ULong reply_status);
90 /// CORBA Object related methods
91 static TAO_DII_Reply_Handler* _duplicate (TAO_DII_Reply_Handler_ptr);
92 static TAO_DII_Reply_Handler* _nil ();
93 static TAO_DII_Reply_Handler* _narrow (CORBA::Object_ptr);
94 static TAO_DII_Reply_Handler* _unchecked_narrow (CORBA::Object_ptr);
96 static int _tao_class_id;
98 typedef TAO_DII_Reply_Handler_ptr _ptr_type;
99 typedef TAO_DII_Reply_Handler_var _var_type;
101 TAO_DII_Reply_Handler (const TAO_DII_Reply_Handler &) = delete;
102 TAO_DII_Reply_Handler &operator = (const TAO_DII_Reply_Handler &) = delete;
105 TAO_END_VERSIONED_NAMESPACE_DECL
107 #if defined (__ACE_INLINE__)
108 # include "DII_Reply_Handler.inl"
109 #endif /* __ACE_INLINE__ */
111 #include /**/ "ace/post.h"
112 #endif /* TAO_DII_REPLY_HANDLER_H */