FDO API Reference Feature Data Objects

Provider.h

Go to the documentation of this file.
00001 #ifndef _FDOPROVIDER_H_
00002 #define _FDOPROVIDER_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 
00025 #ifdef _WIN32
00026 #pragma once
00027 #endif
00028 
00029 // Include definitions
00030 #include <string>
00031 #include <FdoStd.h>
00032 #include <Fdo/ClientServices/ClientServices.h>
00033 
00034 /// \brief
00035 /// Provides information about a feature provider, including name, description, library, and version information.
00036 class FdoProvider : public FdoIDisposable
00037 {
00038     /// Instances of interface FdoProviderRegistry/FdoRegistryUtility/FdoProviderCollection 
00039     /// are responsible for the lifespan of FdoProvider
00040     friend class FdoProviderRegistry;
00041     friend class FdoRegistryUtility;
00042     friend class FdoProviderCollection;
00043 
00044 protected:
00045 /// \cond DOXYGEN-IGNORE
00046     /// Constructs a default instance of a FdoProvider.
00047 
00048     FdoProvider();
00049 
00050     FdoProvider(const wchar_t* name, 
00051                 const wchar_t* displayName, 
00052                 const wchar_t* description, 
00053                 const wchar_t* version, 
00054                 const wchar_t* fdoVersion, 
00055                 const wchar_t* libraryPath,
00056                 bool managed);
00057 
00058     /// Default destructor for FdoProvider.
00059     virtual ~FdoProvider();
00060 
00061     virtual void Dispose();
00062 
00063     /// Sets the values of the provider.
00064     virtual void Set(const wchar_t* name, 
00065                      const wchar_t* displayName, 
00066                      const wchar_t* description, 
00067                      const wchar_t* version, 
00068                      const wchar_t* fdoVersion, 
00069                      const wchar_t* libraryPath,
00070                      bool managed);
00071 /// \endcond
00072 public:
00073     /// \brief
00074     /// Gets the unique name of the feature provider. This name should be of the form 
00075     /// [Company].[Provider].[Version].
00076     /// 
00077     /// \return
00078     /// Returns the name as a constant wchar_t*.
00079     /// Throws an instance of FdoClientServicesException * if an error occurs.
00080     /// 
00081     FDO_API virtual const wchar_t* GetName() const;
00082 
00083     /// \brief
00084     /// Gets a user friendly display name of the feature provider.
00085     /// 
00086     /// \return
00087     /// Returns the display name as a constant wchar_t*.
00088     /// Throws an instance of FdoClientServicesException * if an error occurs.
00089     /// 
00090     FDO_API virtual const wchar_t* GetDisplayName() const;
00091     
00092     /// \brief
00093     /// Gets a brief description of the feature provider.
00094     /// 
00095     /// \return
00096     /// Returns the description as a constant wchar_t*.
00097     /// Throws an instance of FdoClientServicesException * if an error occurs.
00098     /// 
00099     FDO_API virtual const wchar_t* GetDescription() const;
00100     
00101     /// \brief
00102     /// Gets the version of the feature provider. The version number string has the form 
00103     /// [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
00104     /// 
00105     /// \return
00106     /// Returns the version as a constant wchar_t*.
00107     /// Throws an instance of FdoClientServicesException * if an error occurs.
00108     /// 
00109     FDO_API virtual const wchar_t* GetVersion() const;
00110 
00111     /// \brief
00112     /// Gets the version of the feature data objects specification the feature provider conforms to. 
00113     /// The version number string has the form [VersionMajor].[VersionMinor].[BuildMajor].[BuildMinor].
00114     /// 
00115     /// \return
00116     /// Returns the Feature Data Objects version as a constant wchar_t*.
00117     /// Throws an instance of FdoClientServicesException * if an error occurs.
00118     /// 
00119     FDO_API virtual const wchar_t* GetFeatureDataObjectsVersion() const;
00120 
00121     /// \brief
00122     /// Gets the FULL library path + library name of the provider. 
00123     /// 
00124     /// \return
00125     /// Returns the library path as a constant wchar_t*.
00126     /// Throws an instance of FdoClientServicesException * if an error occurs.
00127     /// 
00128     FDO_API virtual const wchar_t* GetLibraryPath() const;
00129 
00130     /// \brief
00131     /// Gets a boolean flag indicating if the provider is a managed or unmanaged provider. 
00132     /// 
00133     /// \return
00134     /// Returns the managed state flag as a bool.
00135     /// Throws an instance of FdoClientServicesException * if an error occurs.
00136     /// 
00137     FDO_API virtual bool GetIsManaged() const;
00138 
00139 private:
00140     /// private data holding the data used to construct the object
00141     std::wstring m_name;
00142     std::wstring m_displayName;
00143     std::wstring m_description;
00144     std::wstring m_version;
00145     std::wstring m_fdoVersion;
00146     std::wstring m_libraryPath;
00147     bool m_isManaged;
00148 };
00149 #endif
00150 
00151 

Comments or suggestions? Send us feedback.