OSGeo FDO Provider for MySQL API Reference

OSGeo FDO Provider for MySQL API

API Reference OSGeo FDO Provider for MySQL

MySqlOvPhysicalSchemaMapping.h

Go to the documentation of this file.
00001 #ifndef FDO_MySQLOVPHYSICALSCHEMAMAPPING_H
00002 #define FDO_MySQLOVPHYSICALSCHEMAMAPPING_H
00003 //
00004 //
00005 // Copyright (C) 2004-2006  Autodesk, Inc.
00006 // 
00007 // This library is free software; you can redistribute it and/or
00008 // modify it under the terms of version 2.1 of the GNU Lesser
00009 // General Public License as published by the Free Software Foundation.
00010 // 
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 // 
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00019 //
00020 #include <Rdbms/Override/RdbmsOvPhysicalSchemaMapping.h>
00021 #include <Rdbms/Override/MySQL/MySqlOv.h>
00022 #include <Rdbms/Override/MySQL/MySqlOvClassCollection.h>
00023 #include <Rdbms/Override/MySQL/MySqlOvStorageEngineType.h>
00024 
00025 /// \brief
00026 /// Concrete class offering schema overrides for
00027 /// the MySQL Provider.
00028 class FdoMySQLOvPhysicalSchemaMapping : public FdoRdbmsOvPhysicalSchemaMapping
00029 {
00030 
00031 public:
00032 
00033     /// \brief
00034     /// Constructs a default of an FdoMySQLOvPhysicalSchemaMapping
00035     /// 
00036     /// \return
00037     /// Returns FdoMySQLOvPhysicalSchemaMapping
00038     /// 
00039     FDOMYSQL_OV_API static FdoMySQLOvPhysicalSchemaMapping* Create();
00040 
00041     /// \brief
00042     /// Constructs an instance of an FdoMySQLOvPhysicalSchemaMapping using the specified arguments
00043     /// 
00044     /// \param name 
00045     /// Input name
00046     /// 
00047     /// \return
00048     /// Returns FdoMySQLOvPhysicalSchemaMapping
00049     /// 
00050     FDOMYSQL_OV_API static FdoMySQLOvPhysicalSchemaMapping* Create(FdoString* name);
00051 
00052     /// \brief
00053     /// Gets the classes
00054     /// 
00055     /// \return
00056     /// Returns the classes
00057     /// 
00058     FDOMYSQL_OV_API FdoMySQLOvClassCollection* GetClasses();
00059 
00060     /// \brief
00061     /// Gets the directory where table data is stored
00062     /// 
00063     /// \return
00064     /// Returns the directory where table data is stored
00065     /// 
00066     FDOMYSQL_OV_API FdoString *GetDataDirectory();
00067 
00068     /// \brief
00069     /// Sets the directory where table data is stored
00070     /// 
00071     /// \return
00072     /// Returns nothing
00073     /// 
00074     FDOMYSQL_OV_API void SetDataDirectory(FdoString *dataDirectory);
00075 
00076     /// \brief
00077     /// Gets the directory where indexes are stored
00078     /// 
00079     /// \return
00080     /// Returns the directory where indexes are stored
00081     /// 
00082     FDOMYSQL_OV_API FdoString *GetIndexDirectory();
00083 
00084     /// \brief
00085     /// Sets the directory where indexes are stored
00086     /// 
00087     /// \return
00088     /// Returns nothing
00089     /// 
00090     FDOMYSQL_OV_API void SetIndexDirectory(FdoString *indexDirectory);
00091 
00092     /// \brief
00093     /// Gets the storage engine type
00094     /// 
00095     /// \return
00096     /// Returns the storage engine type
00097     /// 
00098     FDOMYSQL_OV_API MySQLOvStorageEngineType GetStorageEngine();
00099 
00100     /// \brief
00101     /// Sets the storage engine type
00102     /// 
00103     /// \return
00104     /// Returns nothing
00105     /// 
00106     FDOMYSQL_OV_API void SetStorageEngine(MySQLOvStorageEngineType storageEngine);
00107 
00108     /// \brief
00109     /// Gets the database
00110     /// 
00111     /// \return
00112     /// Returns the database
00113     /// 
00114     FDOMYSQL_OV_API FdoString *GetDatabase();
00115 
00116     /// \brief
00117     /// Sets the database
00118     /// 
00119     /// \return
00120     /// Returns nothing
00121     /// 
00122     FDOMYSQL_OV_API void SetDatabase(FdoString *database);
00123 
00124     /// \brief
00125     /// Gets the provider name
00126     /// 
00127     /// \return
00128     /// Returns the provider name
00129     /// 
00130     FDOMYSQL_OV_API virtual FdoString *GetProvider(void);
00131 
00132 /// \cond DOXYGEN-IGNORE
00133 
00134     /// XML Serialization functions, not part of API.
00135 
00136     /// Serialize this property to XML.
00137     virtual void _writeXmlAttributes(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00138 
00139     /// Initialize this element from its XML attributes
00140     virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00141 
00142 /// \endcond
00143 
00144 protected:
00145     FdoMySQLOvPhysicalSchemaMapping();
00146     FdoMySQLOvPhysicalSchemaMapping(FdoString* name);
00147     virtual ~FdoMySQLOvPhysicalSchemaMapping();
00148     virtual void Dispose();
00149 
00150     /// Create a class override from XML attributes
00151     virtual FdoRdbmsOvClassDefinition* CreateClass( 
00152         FdoXmlSaxContext* context,
00153         FdoXmlAttributeCollection* atts
00154     );
00155 
00156     /// Add the given class override to this schema override set
00157     virtual void AddClass( 
00158         FdoRdbmsOvClassDefinition* pClass
00159     );
00160 
00161     /// common initializer for all constructors:
00162     void Init();
00163 
00164 private:
00165     FdoMySQLOvClassesP          mClasses;
00166     FdoStringP                  mDataDirectory;
00167     FdoStringP                  mIndexDirectory;
00168     MySQLOvStorageEngineType    mStorageEngine;
00169     FdoStringP                  mDatabase;
00170 };
00171 
00172 /// \brief
00173 /// FdoMySQLOvSchemaMappingP is a FdoPtr on FdoMySQLOvPhysicalSchemaMapping, provided for convenience.
00174 typedef FdoPtr<FdoMySQLOvPhysicalSchemaMapping> FdoMySQLOvSchemaMappingP;
00175 
00176 #endif
00177 
00178 

Comments?