00001 #ifndef _ICREATESPATIALINDEX_H_
00002 #define _ICREATESPATIALINDEX_H_
00003 //
00004 //
00005 // (C) Copyright 1990-2005 by Autodesk, Inc.
00006 //
00007 //
00008 //
00009 // By using this code, you are agreeing to the terms
00010 // and conditions of the License Agreement that appeared
00011 // and was accepted upon download or installation
00012 // (or in connection with the download or installation)
00013 // of the Autodesk software in which this code is included.
00014 // All permissions on use of this code are as set forth
00015 // in such License Agreement provided that the above copyright
00016 // notice appears in all authorized copies and that both that
00017 // copyright notice and the limited warranty and
00018 // restricted rights notice below appear in all supporting
00019 // documentation.
00020 //
00021 // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
00022 // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
00023 // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
00024 // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
00025 // UNINTERRUPTED OR ERROR FREE.
00026 //
00027 // Use, duplication, or disclosure by the U.S. Government is subject to
00028 // restrictions set forth in FAR 52.227-19 (Commercial Computer
00029 // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00030 // (Rights in Technical Data and Computer Software), as applicable.
00031 //
00032 #ifdef _WIN32
00033 #pragma once
00034 #endif
00035
00036 #include "FdoStd.h"
00037 #include "Fdo/Commands/ICommand.h"
00038 #include "Rdbms/SpatialIndexDimensionType.h"
00039 #include "Rdbms/SpatialIndexType.h"
00040 #include "Fdo/Schema/PropertyDefinition.h"
00041
00042
00043 /// \brief
00044 /// The ICreateSpatialIndex interface defines the CreateSpatialIndex
00045 /// command, which is spatial indexing the speciified spatial context.
00046 /// Input to the command includes the name, spatial context, special index type,
00047 /// the number of dimensions for the new spatial index.
00048 class FdoICreateSpatialIndex : public FdoICommand
00049 {
00050
00051 public:
00052 /// \brief
00053 /// Gets the name of the Spatial index as a String.
00054 ///
00055 /// \return
00056 /// Returns the name of the spatial Index
00057 ///
00058 FDO_API virtual const wchar_t* GetName() = 0;
00059
00060 /// \brief
00061 /// Sets the name of the spatial Index to create as a String.
00062 ///
00063 /// \param value
00064 /// Input the name of the spatial Index
00065 ///
00066 /// \return
00067 /// Returns nothing
00068 ///
00069 FDO_API virtual void SetName(const wchar_t* value) = 0;
00070
00071 /// \brief
00072 /// Gets the name of the spatial context as a String.
00073 ///
00074 /// \return
00075 /// Returns the description of the spatial context
00076 ///
00077 FDO_API virtual const wchar_t* GetSpatialContextName() = 0;
00078
00079 /// \brief
00080 /// Sets the name of the spatial context to create as a String.
00081 ///
00082 /// \param value
00083 /// Input the description of the spatial spatial Index
00084 ///
00085 /// \return
00086 /// Returns nothing
00087 ///
00088 FDO_API virtual void SetSpatialContextName(const wchar_t* value) = 0;
00089
00090 /// \brief
00091 /// Gets the type of the spatial Index, either Quad-Tree or R-Tree.
00092 ///
00093 /// \return
00094 /// Returns the spatial index type
00095 ///
00096 FDO_API virtual SpatialIndexType GetSpatialIndexType() = 0;
00097
00098 /// \brief
00099 /// Sets the desired spatial Index to create, either Quad-Tree or R-Tree.
00100 ///
00101 /// \param value
00102 /// Input the index type
00103 ///
00104 /// \return
00105 /// Returns nothing
00106 ///
00107 FDO_API virtual void SetSpatialIndexType(SpatialIndexType value) = 0;
00108
00109 /// \brief
00110 /// Gets the number of dimensions of the spatial Index.
00111 ///
00112 /// \return
00113 /// Returns the extent type
00114 ///
00115 FDO_API virtual SpatialIndexDimensionType GetNumDimensions() = 0;
00116
00117 /// \brief
00118 /// Sets the desired value of the spatial Index dimension.
00119 ///
00120 /// \param value
00121 /// Input the index dimension
00122 ///
00123 /// \return
00124 /// Returns nothing
00125 ///
00126 FDO_API virtual void SetNumDimensions(SpatialIndexDimensionType value) = 0;
00127
00128 /// \brief
00129 /// Sets the geometric property.
00130 ///
00131 /// \param value
00132 /// Input the geometric property definition.
00133 ///
00134 /// \return
00135 /// Returns nothing
00136 ///
00137 FDO_API virtual void SetGeometricProperty(FdoGeometricPropertyDefinition *value) = 0;
00138
00139 /// \brief
00140 /// Gets the geometric property previously set, if any.
00141 ///
00142 /// \return
00143 /// Returns NULL if not set or a pointer to a geometry property definition
00144 ///
00145 FDO_API virtual FdoGeometricPropertyDefinition *GetGeometricProperty() = 0;
00146
00147 /// \brief
00148 /// Executes the CreateSpatialIndex command. An exception is thrown if
00149 /// the spatial index or the spatial context names are not indicated.
00150 ///
00151 /// \return
00152 /// Returns nothing
00153 ///
00154 FDO_API virtual void Execute() = 0;
00155 };
00156 #endif
00157
00158