3 //=============================================================================
5 * @file IFR_Client_Adapter.h
7 * @author Jeff Parsons <parsons@cs.wustl.edu>
9 //=============================================================================
12 #ifndef TAO_IFR_CLIENT_ADAPTER_H
13 #define TAO_IFR_CLIENT_ADAPTER_H
15 #include /**/ "ace/pre.h"
16 #include "ace/Service_Object.h"
18 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #endif /* ACE_LACKS_PRAGMA_ONCE */
22 #include /**/ "tao/TAO_Export.h"
23 #include "tao/Basic_Types.h"
24 #include "tao/orbconf.h"
26 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
33 typedef InterfaceDef
*InterfaceDef_ptr
;
39 typedef Object
*Object_ptr
;
42 typedef OperationDef
*OperationDef_ptr
;
45 typedef NVList
*NVList_ptr
;
49 * @class TAO_IFR_Client_Adapter
51 * @brief TAO_IFR_Client_Adapter.
53 * Class that adapts various functions in the CORBA namespace
54 * which use the Interface Repository. This is a base class for
55 * the actual implementation in the TAO_IFR_Client library.
57 class TAO_Export TAO_IFR_Client_Adapter
: public ACE_Service_Object
62 * @note Even though this class only defines an interface, a
63 * destructor is necessary to avoid dynamic_cast<> failures
64 * when using g++ 4.x's -fvisibility-inlines-hidden command
65 * line option. Apparently the compiler generated
66 * destructor is inlined.
68 virtual ~TAO_IFR_Client_Adapter ();
70 virtual CORBA::Boolean
interfacedef_cdr_insert (
72 CORBA::InterfaceDef_ptr object_type
) = 0;
74 virtual void interfacedef_any_insert (
76 CORBA::InterfaceDef_ptr object_type
) = 0;
78 virtual void dispose (CORBA::InterfaceDef_ptr orphan
) = 0;
80 virtual CORBA::InterfaceDef_ptr
get_interface (
82 const char *repo_id
) = 0;
84 virtual CORBA::InterfaceDef_ptr
get_interface_remote (
85 CORBA::Object_ptr target
) = 0;
87 #if (TAO_HAS_MINIMUM_CORBA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
88 virtual void create_operation_list (
90 CORBA::OperationDef_ptr
,
91 CORBA::NVList_ptr
&) = 0;
92 #endif /*TAO_HAS_MINIMUM_CORBA*/
95 TAO_END_VERSIONED_NAMESPACE_DECL
97 #include /**/ "ace/post.h"
98 #endif /* TAO_IFR_CLIENT_ADAPTER_H */