FDO .NET API Reference Feature Data Objects

mgIProviderRegistryImp.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 IProviderRegistry;
00024 
00025 BEGIN_NAMESPACE_OSGEO_FDO
00026 
00027 /// \ingroup (OSGeoFDO)
00028 /// \brief
00029 ///  
00030 /// The IProviderRegistryImp class is a concrete implementation of IProviderRegistry.
00031 /// IProviderRegistryImp supports registering, un-registering, and enumerating 
00032 /// registered feature providers. 
00033 ///
00034 /// \note
00035 /// This is not the Windows registry.
00036 private __gc class IProviderRegistryImp : public NAMESPACE_OSGEO_RUNTIME::Disposable, public NAMESPACE_OSGEO_FDO::IProviderRegistry
00037 {
00038 public:
00039     /// \brief
00040     /// Gets a read only collection of information describing each of the registered feature providers. 
00041     /// 
00042     /// \return
00043     /// Returns an an instance of ProviderCollection. Throws an instance of Exception if an error occurs.
00044     /// 
00045     NAMESPACE_OSGEO_FDO_CLIENTSERVICES::ProviderCollection* GetProviders();
00046     
00047     /// \brief
00048     /// Registers a provider given the necessary information to register the provider. 
00049     /// If any of the parameters are missing or invalid, an exception is thrown. 
00050     /// 
00051     /// \param name 
00052     /// The unique name of the feature provider. This name should be of the form 
00053     /// [Company].[Provider].[Version].
00054     /// \param displayName 
00055     /// A user friendly display name of the feature provider.
00056     /// \param description 
00057     /// A brief description of the feature provider.
00058     /// \param version 
00059     /// The version of the feature provider. The version number string has the form 
00060     /// [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
00061     /// \param fdoVersion 
00062     /// The version of the feature data objects specification the feature provider conforms to. 
00063     /// The version number string has the form [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
00064     /// \param libraryPath 
00065     /// The FULL library path + library name of the provider.
00066     /// \param isManaged 
00067     /// A flag indicating if the provider is a managed or unmanaged .Net provider.
00068     /// 
00069     /// \return
00070     /// Returns nothing. Throws an instance of Exception if an error occurs.
00071     /// 
00072     System::Void RegisterProvider(String * name, 
00073                                           String * displayName, 
00074                                           String * description, 
00075                                           String * version, 
00076                                           String * fdoVersion, 
00077                                           String * libraryPath,
00078                                           System::Boolean isManaged);
00079 
00080     /// \brief
00081     /// Unregisters the provider with the specified name. 
00082     /// 
00083     /// \param name 
00084     /// The unique name of the feature provider. This name should be of the form 
00085     /// [Company].[Provider].[Version].
00086     /// 
00087     /// \return
00088     /// Returns nothing. Throws an instance of Exception if an error occurs.
00089     /// 
00090     System::Void UnregisterProvider(String * name);
00091 
00092 public private:
00093     IProviderRegistryImp(System::IntPtr unmanaged, System::Boolean autoDelete);
00094 
00095 	::IProviderRegistry *GetImpObj();
00096 
00097 /// \cond DOXYGEN-IGNORE
00098 protected:
00099     System::Void ReleaseUnmanagedObject();
00100 /// \endcond
00101 };
00102 
00103 END_NAMESPACE_OSGEO_FDO
00104 
00105 

Comments or suggestions? Send us feedback.