00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file IFR_Client_Adapter.h 00006 * 00007 * IFR_Client_Adapter.h,v 1.17 2005/11/02 07:13:03 ossama Exp 00008 * 00009 * @author Jeff Parsons <parsons@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_IFR_CLIENT_ADAPTER_H 00015 #define TAO_IFR_CLIENT_ADAPTER_H 00016 00017 #include /**/ "ace/pre.h" 00018 #include "ace/CORBA_macros.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "ace/Service_Object.h" 00025 00026 #include "tao/TAO_Export.h" 00027 #include "tao/Basic_Types.h" 00028 #include "tao/orbconf.h" 00029 00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00031 00032 class TAO_OutputCDR; 00033 00034 namespace CORBA 00035 { 00036 class InterfaceDef; 00037 typedef InterfaceDef *InterfaceDef_ptr; 00038 00039 class ORB; 00040 typedef ORB *ORB_ptr; 00041 00042 class Object; 00043 typedef Object *Object_ptr; 00044 00045 class OperationDef; 00046 typedef OperationDef *OperationDef_ptr; 00047 00048 class NVList; 00049 typedef NVList *NVList_ptr; 00050 00051 class Environment; 00052 } 00053 00054 /** 00055 * @class TAO_IFR_Client_Adapter 00056 * 00057 * @brief TAO_IFR_Client_Adapter. 00058 * 00059 * Class that adapts various functions in the CORBA namespace 00060 * which use the Interface Repository. This is a base class for 00061 * the actual implementation in the TAO_IFR_Client library. 00062 */ 00063 class TAO_Export TAO_IFR_Client_Adapter : public ACE_Service_Object 00064 { 00065 public: 00066 virtual CORBA::Boolean interfacedef_cdr_insert ( 00067 TAO_OutputCDR &cdr, 00068 CORBA::InterfaceDef_ptr object_type 00069 ) = 0; 00070 00071 virtual void interfacedef_any_insert ( 00072 CORBA::Any *any, 00073 CORBA::InterfaceDef_ptr object_type 00074 ) = 0; 00075 00076 virtual void dispose ( 00077 CORBA::InterfaceDef_ptr orphan 00078 ) = 0; 00079 00080 virtual CORBA::InterfaceDef_ptr get_interface ( 00081 CORBA::ORB_ptr orb, 00082 const char *repo_id 00083 ACE_ENV_ARG_DECL 00084 ) = 0; 00085 00086 virtual CORBA::InterfaceDef_ptr get_interface_remote ( 00087 CORBA::Object_ptr target 00088 ACE_ENV_ARG_DECL 00089 ) = 0; 00090 00091 #if (TAO_HAS_MINIMUM_CORBA == 0) 00092 virtual void create_operation_list ( 00093 CORBA::ORB_ptr orb, 00094 CORBA::OperationDef_ptr, 00095 CORBA::NVList_ptr& 00096 ACE_ENV_ARG_DECL 00097 ) = 0; 00098 #endif /*TAO_HAS_MINIMUM_CORBA*/ 00099 }; 00100 00101 TAO_END_VERSIONED_NAMESPACE_DECL 00102 00103 #include /**/ "ace/post.h" 00104 #endif /* TAO_IFR_CLIENT_ADAPTER_H */