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

# IProviderRegistry.h

Go to the documentation of this file.

    00001 #ifndef _IPROVIDERREGISTRY_H_
    00002 #define _IPROVIDERREGISTRY_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 #ifdef _WIN32
    00024 #pragma once
    00025 #endif
    00026
    00027 // Include definitions
    00028 #include <FdoStd.h>
    00029 #include <Fdo/ClientServices/ClientServices.h>
    00030 #include <Fdo/ClientServices/ProviderCollection.h>
    00031
    00032 /// \brief
    00033 ///
    00034 /// The IProviderRegistry interface supports registering, un-registering, and enumerating
    00035 /// registered feature providers.
    00036 /// \note
    00037 /// This is not the Windows registry.
    00038 class IProviderRegistry : public FdoIDisposable
    00039 {
    00040 public:
    00041     /// \brief
    00042     /// Gets a read only collection of information describing each of the registered feature providers.
    00043     ///
    00044     /// \return
    00045     /// Returns an an instance of FdoProviderCollection. Throws an instance of FdoClientServicesException * if an error occurs.
    00046     ///
    00047     FDO_API virtual const FdoProviderCollection* GetProviders() const = 0;
    00048
    00049     /// \brief
    00050     /// Registers a provider given the necessary information to register the provider.
    00051     /// If any of the parameters are missing or invalid, an exception is thrown.
    00052     ///
    00053     /// \param name
    00054     /// The unique name of the feature provider. This name should be of the form
    00055     /// [Company].[Provider].[Version].
    00056     /// \param displayName
    00057     /// A user friendly display name of the feature provider.
    00058     /// \param description
    00059     /// A brief description of the feature provider.
    00060     /// \param version
    00061     /// The version of the feature provider. The version number string has the form
    00062     /// [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
    00063     /// \param fdoVersion
    00064     /// The version of the feature data objects specification the feature provider conforms to.
    00065     /// The version number string has the form [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
    00066     /// \param libraryPath
    00067     /// The FULL library path + library name of the provider.
    00068     /// \param isManaged
    00069     /// A flag indicating if the provider is a managed or unmanaged .Net provider.
    00070     ///
    00071     /// \return
    00072     /// Returns nothing. Throws an instance of FdoClientServicesException * if an error occurs.
    00073     ///
    00074     FDO_API virtual void RegisterProvider(const wchar_t * name,
    00075                                             const wchar_t * displayName,
    00076                                             const wchar_t * description,
    00077                                             const wchar_t * version,
    00078                                             const wchar_t * fdoVersion,
    00079                                             const wchar_t * libraryPath,
    00080                                             bool isManaged) = 0;
    00081
    00082     /// \brief
    00083     /// Unregisters the provider with the specified name.
    00084     ///
    00085     /// \param name
    00086     /// The unique name of the feature provider. This name should be of the form
    00087     /// [Company].[Provider].[Version].
    00088     ///
    00089     /// \return
    00090     /// Returns nothing. Throws an instance of FdoClientServicesException * if an error occurs.
    00091     ///
    00092     FDO_API virtual void UnregisterProvider(const wchar_t * name) = 0;
    00093 };
    00094 #endif
    00095
    00096

Please send us your comment about this page