FDO .NET API Reference Feature Data Objects

mgProviderRegistry.h

Go to the documentation of this file.
00001 /*
00002 * Copyright (C) 2004-2006  Autodesk, Inc.
00003 * 
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 * 
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 * Lesser General Public License for more details.
00012 * 
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00016 *
00017 */
00018 
00019 #pragma  once
00020 
00021 #include "FDO\mgIProviderRegistry.h"
00022 
00023 class FdoProviderRegistry;
00024 
00025 BEGIN_NAMESPACE_OSGEO_FDO_CLIENTSERVICES
00026 
00027 /// \ingroup (OSGeoFDOClientServices)
00028 /// \brief
00029 /// The ProviderRegistry class supports registering, un-registering, and enumerating 
00030 /// registered feature providers. ProviderRegistry is derived from interface IProviderRegistry.
00031 ///
00032 /// \note
00033 /// This is not the MS-Windows registry.
00034 public __gc class ProviderRegistry : public NAMESPACE_OSGEO_RUNTIME::Disposable, public NAMESPACE_OSGEO_FDO::IProviderRegistry
00035 {
00036 public:
00037     /// \brief
00038     /// Gets a read only collection of information describing each of the registered feature providers. 
00039     /// 
00040     /// \return
00041     /// Returns an an instance of ProviderCollection. Throws an instance of Exception if an error occurs.
00042     /// 
00043     NAMESPACE_OSGEO_FDO_CLIENTSERVICES::ProviderCollection* GetProviders();
00044     
00045     /// \brief
00046     /// Registers a provider given the necessary information to register the provider. 
00047     /// If any of the parameters are missing or invalid, an exception is thrown. 
00048     /// 
00049     /// \param name 
00050     /// The unique name of the feature provider. This name should be of the form 
00051     /// [Company].[Provider].[Version].
00052     /// \param displayName 
00053     /// A user friendly display name of the feature provider.
00054     /// \param description 
00055     /// A brief description of the feature provider.
00056     /// \param version 
00057     /// The version of the feature provider. The version number string has the form 
00058     /// [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
00059     /// \param fdoVersion 
00060     /// The version of the feature data objects specification the feature provider conforms to. 
00061     /// The version number string has the form [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
00062     /// \param libraryPath 
00063     /// The FULL library path + library name of the provider.
00064     /// \param isManaged 
00065     /// A flag indicating if the provider is a managed or unmanaged .Net provider.
00066     /// 
00067     /// \return
00068     /// Returns nothing. Throws an instance of Exception if an error occurs.
00069     /// 
00070     System::Void RegisterProvider(String * name, 
00071                                   String * displayName, 
00072                                   String * description, 
00073                                   String * version, 
00074                                   String * fdoVersion, 
00075                                   String * libraryPath,
00076                                   System::Boolean isManaged);
00077 
00078     /// \brief
00079     /// Unregisters the provider with the specified name. 
00080     /// 
00081     /// \param name 
00082     /// The unique name of the feature provider. This name should be of the form 
00083     /// [Company].[Provider].[Version].
00084     /// 
00085     /// \return
00086     /// Returns nothing. Throws an instance of Exception if an error occurs.
00087     /// 
00088     System::Void UnregisterProvider(String * name);
00089 
00090 public private:
00091     ProviderRegistry(System::IntPtr unmanaged, System::Boolean autoDelete);
00092 
00093     inline FdoProviderRegistry* GetImpObj();
00094 
00095 /// \cond DOXYGEN-IGNORE
00096 protected:
00097     System::Void ReleaseUnmanagedObject();
00098 /// \endcond
00099 };
00100 
00101 END_NAMESPACE_OSGEO_FDO_CLIENTSERVICES
00102 
00103 

Comments or suggestions? Send us feedback.