FDO API Reference Feature Data Objects

ProviderRegistry.h

Go to the documentation of this file.
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.