3 //==============================================================
5 * @file DII_Reply_Handler.h
7 * @brief Handler of DII twoway asynch replies type.
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)
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
;
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
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;
59 TAO_DII_Reply_Handler_ptr ptr_
;
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
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
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 */