FDO API Reference | Feature Data Objects |
00001 #ifndef _FDOPROVIDERREGISTRY_H_ 00002 #define _FDOPROVIDERREGISTRY_H_ 00003 /*************************************************************************** 00004 00005 // 00006 // Copyright (C) 2004-2006 Autodesk, Inc. 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of version 2.1 of the GNU Lesser 00010 // General Public License as published by the Free Software Foundation. 00011 // 00012 // This library is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 // Lesser General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU Lesser General Public 00018 // License along with this library; if not, write to the Free Software 00019 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 // 00021 00022 * 00023 ***************************************************************************/ 00024 #ifdef _WIN32 00025 #pragma once 00026 #endif 00027 00028 // Include definitions 00029 #include <Fdo/IProviderRegistry.h> 00030 00031 // Forward class declarations 00032 class FdoProviderCollection; 00033 00034 /// \brief 00035 /// The FdoProviderRegistry interface supports registering, un-registering, and enumerating 00036 /// registered feature providers 00037 /// \note 00038 /// This is not the MS-Windows registry. 00039 class FdoProviderRegistry : public IProviderRegistry 00040 { 00041 /// \brief 00042 /// Instances of the FdoFeatureAccessManager interface are responsible for the 00043 /// lifespan of FdoProviderRegistry. 00044 friend class FdoFeatureAccessManager; 00045 00046 protected: 00047 /// \cond DOXYGEN-IGNORE 00048 /// Constructs a default instance of a FdoProviderRegistry object. 00049 FdoProviderRegistry(); 00050 00051 /// Default destructor for FdoProviderRegistry object. 00052 virtual ~FdoProviderRegistry(); 00053 00054 virtual void Dispose(); 00055 /// \endcond 00056 00057 public: 00058 /// \brief 00059 /// Gets a read only collection of information describing each of the registered feature providers. 00060 /// 00061 /// \return 00062 /// Returns an an instance of FdoProviderCollection. Throws an instance of FdoClientServicesException * if an error occurs. 00063 /// 00064 FDO_API virtual const FdoProviderCollection* GetProviders() const; 00065 00066 /// \brief 00067 /// Registers a provider given the necessary information to register the provider. 00068 /// If any of the parameters are missing or invalid and exception is thrown. 00069 /// 00070 /// \param name 00071 /// The unique name of the feature provider. This name should be of the form 00072 /// [Company].[Provider].[Version]. 00073 /// \param displayName 00074 /// A user friendly display name of the feature provider. 00075 /// \param description 00076 /// A brief description of the feature provider. 00077 /// \param version 00078 /// The version of the feature provider. The version number string has the form 00079 /// [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor]. 00080 /// \param fdoVersion 00081 /// The version of the feature data objects specification the feature provider conforms to. 00082 /// The version number string has the form [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor]. 00083 /// \param libraryPath 00084 /// The FULL library path + library name of the provider. 00085 /// \param isManaged 00086 /// A flag indicating if the provider is a managed or unmanaged .Net provider. 00087 /// 00088 /// \return 00089 /// Returns nothing. Throws an instance of FdoClientServicesException * if an error occurs. 00090 /// 00091 FDO_API virtual void RegisterProvider(const wchar_t * name, 00092 const wchar_t * displayName, 00093 const wchar_t * description, 00094 const wchar_t * version, 00095 const wchar_t * fdoVersion, 00096 const wchar_t * libraryPath, 00097 bool isManaged); 00098 00099 /// \brief 00100 /// Unregisters the provider with the specified name. 00101 /// 00102 /// \param name 00103 /// The unique name of the feature provider. This name should be of the form 00104 /// [Company].[Provider].[Version]. 00105 /// 00106 /// \return 00107 /// Returns nothing. Throws an instance of FdoClientServicesException * if an error occurs. 00108 /// 00109 FDO_API virtual void UnregisterProvider(const wchar_t * name); 00110 00111 private: 00112 /// The ProvideRegistry class defines and maintains a collection of Providers 00113 FdoProviderCollection* m_providerCollection; 00114 }; 00115 #endif 00116 00117
Comments or suggestions? Send us feedback. |