- Main Page
- Related Pages
- Modules
- Classes
- Files

# 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 /// \cond DOXYGEN-IGNORE
    00047 protected:
    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

Please send us your comment about this page