GDAL
|
00001 /****************************************************************************** 00002 * $Id: ograpispy.h 28807 2015-03-28 14:46:31Z rouault $ 00003 * 00004 * Project: OpenGIS Simple Features Reference Implementation 00005 * Purpose: OGR C API "Spy" 00006 * Author: Even Rouault, even.rouault at spatialys.com 00007 * 00008 ****************************************************************************** 00009 * Copyright (c) 2014, Even Rouault <even.rouault at spatialys.com> 00010 * 00011 * Permission is hereby granted, free of charge, to any person obtaining a 00012 * copy of this software and associated documentation files (the "Software"), 00013 * to deal in the Software without restriction, including without limitation 00014 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00015 * and/or sell copies of the Software, and to permit persons to whom the 00016 * Software is furnished to do so, subject to the following conditions: 00017 * 00018 * The above copyright notice and this permission notice shall be included 00019 * in all copies or substantial portions of the Software. 00020 * 00021 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00022 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00023 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00024 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00025 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00026 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00027 * DEALINGS IN THE SOFTWARE. 00028 ****************************************************************************/ 00029 00030 #ifndef _OGRAPISPY_H_INCLUDED 00031 #define _OGRAPISPY_H_INCLUDED 00032 00033 #include "gdal.h" 00034 00065 #ifdef DEBUG 00066 #define OGRAPISPY_ENABLED 00067 #endif 00068 00069 #ifdef OGRAPISPY_ENABLED 00070 00071 CPL_C_START 00072 00073 extern int bOGRAPISpyEnabled; 00074 00075 int OGRAPISpyOpenTakeSnapshot(const char* pszName, int bUpdate); 00076 void OGRAPISpyOpen(const char* pszName, int bUpdate, int iSnapshot, 00077 GDALDatasetH* phDS); 00078 void OGRAPISpyPreClose(OGRDataSourceH hDS); 00079 void OGRAPISpyPostClose(OGRDataSourceH hDS); 00080 void OGRAPISpyCreateDataSource(OGRSFDriverH hDriver, const char* pszName, 00081 char** papszOptions, OGRDataSourceH hDS); 00082 void OGRAPISpyDeleteDataSource(OGRSFDriverH hDriver, const char* pszName); 00083 00084 void OGRAPISpy_DS_GetLayerCount( OGRDataSourceH hDS ); 00085 void OGRAPISpy_DS_GetLayer( OGRDataSourceH hDS, int iLayer, OGRLayerH hLayer ); 00086 void OGRAPISpy_DS_GetLayerByName( OGRDataSourceH hDS, const char* pszLayerName, 00087 OGRLayerH hLayer ); 00088 void OGRAPISpy_DS_ExecuteSQL( OGRDataSourceH hDS, 00089 const char *pszStatement, 00090 OGRGeometryH hSpatialFilter, 00091 const char *pszDialect, 00092 OGRLayerH hLayer); 00093 void OGRAPISpy_DS_ReleaseResultSet( OGRDataSourceH hDS, OGRLayerH hLayer); 00094 00095 void OGRAPISpy_DS_CreateLayer( OGRDataSourceH hDS, 00096 const char * pszName, 00097 OGRSpatialReferenceH hSpatialRef, 00098 OGRwkbGeometryType eType, 00099 char ** papszOptions, 00100 OGRLayerH hLayer); 00101 void OGRAPISpy_DS_DeleteLayer( OGRDataSourceH hDS, int iLayer ); 00102 00103 void OGRAPISpy_Dataset_StartTransaction( GDALDatasetH hDS, int bForce ); 00104 void OGRAPISpy_Dataset_CommitTransaction( GDALDatasetH hDS ); 00105 void OGRAPISpy_Dataset_RollbackTransaction( GDALDatasetH hDS ); 00106 00107 void OGRAPISpy_L_GetFeatureCount( OGRLayerH hLayer, int bForce ); 00108 void OGRAPISpy_L_GetExtent( OGRLayerH hLayer, int bForce ); 00109 void OGRAPISpy_L_GetExtentEx( OGRLayerH hLayer, int iGeomField, int bForce ); 00110 void OGRAPISpy_L_SetAttributeFilter( OGRLayerH hLayer, const char* pszFilter ); 00111 void OGRAPISpy_L_GetFeature( OGRLayerH hLayer, GIntBig nFeatureId ); 00112 void OGRAPISpy_L_SetNextByIndex( OGRLayerH hLayer, GIntBig nIndex ); 00113 void OGRAPISpy_L_GetNextFeature( OGRLayerH hLayer ); 00114 void OGRAPISpy_L_SetFeature( OGRLayerH hLayer, OGRFeatureH hFeat ); 00115 void OGRAPISpy_L_CreateFeature( OGRLayerH hLayer, OGRFeatureH hFeat ); 00116 void OGRAPISpy_L_CreateField( OGRLayerH hLayer, OGRFieldDefnH hField, 00117 int bApproxOK ); 00118 void OGRAPISpy_L_DeleteField( OGRLayerH hLayer, int iField ); 00119 void OGRAPISpy_L_ReorderFields( OGRLayerH hLayer, int* panMap ); 00120 void OGRAPISpy_L_ReorderField( OGRLayerH hLayer, int iOldFieldPos, 00121 int iNewFieldPos ); 00122 void OGRAPISpy_L_AlterFieldDefn( OGRLayerH hLayer, int iField, 00123 OGRFieldDefnH hNewFieldDefn, 00124 int nFlags ); 00125 void OGRAPISpy_L_CreateGeomField( OGRLayerH hLayer, OGRGeomFieldDefnH hField, 00126 int bApproxOK ); 00127 void OGRAPISpy_L_StartTransaction( OGRLayerH hLayer ); 00128 void OGRAPISpy_L_CommitTransaction( OGRLayerH hLayer ); 00129 void OGRAPISpy_L_RollbackTransaction( OGRLayerH hLayer ); 00130 void OGRAPISpy_L_GetLayerDefn( OGRLayerH hLayer ); 00131 void OGRAPISpy_L_FindFieldIndex( OGRLayerH hLayer, const char *pszFieldName, 00132 int bExactMatch ); 00133 void OGRAPISpy_L_GetSpatialRef( OGRLayerH hLayer ); 00134 void OGRAPISpy_L_TestCapability( OGRLayerH hLayer, const char* pszCap ); 00135 void OGRAPISpy_L_GetSpatialFilter( OGRLayerH hLayer ); 00136 void OGRAPISpy_L_SetSpatialFilter( OGRLayerH hLayer, OGRGeometryH hGeom ); 00137 void OGRAPISpy_L_SetSpatialFilterEx( OGRLayerH hLayer, int iGeomField, 00138 OGRGeometryH hGeom ); 00139 void OGRAPISpy_L_SetSpatialFilterRect( OGRLayerH hLayer, 00140 double dfMinX, double dfMinY, 00141 double dfMaxX, double dfMaxY); 00142 void OGRAPISpy_L_SetSpatialFilterRectEx( OGRLayerH hLayer, int iGeomField, 00143 double dfMinX, double dfMinY, 00144 double dfMaxX, double dfMaxY); 00145 void OGRAPISpy_L_ResetReading( OGRLayerH hLayer ); 00146 void OGRAPISpy_L_SyncToDisk( OGRLayerH hLayer ); 00147 void OGRAPISpy_L_DeleteFeature( OGRLayerH hLayer, GIntBig nFID ); 00148 void OGRAPISpy_L_GetFIDColumn( OGRLayerH hLayer ); 00149 void OGRAPISpy_L_GetGeometryColumn( OGRLayerH hLayer ); 00150 void OGRAPISpy_L_GetName( OGRLayerH hLayer ); 00151 void OGRAPISpy_L_GetGeomType( OGRLayerH hLayer ); 00152 void OGRAPISpy_L_SetIgnoredFields( OGRLayerH hLayer, 00153 const char** papszIgnoredFields ); 00154 00155 void OGRAPISpy_FD_GetGeomType(OGRFeatureDefnH hDefn); 00156 void OGRAPISpy_FD_GetFieldCount(OGRFeatureDefnH hDefn); 00157 void OGRAPISpy_FD_GetFieldDefn(OGRFeatureDefnH hDefn, int iField, 00158 OGRFieldDefnH hGeomField); 00159 void OGRAPISpy_FD_GetFieldIndex(OGRFeatureDefnH hDefn, const char* pszFieldName); 00160 00161 void OGRAPISpy_Fld_GetXXXX(OGRFieldDefnH hField, const char* pszOp); 00162 00163 void OGRAPISpy_FD_GetGeomFieldCount(OGRFeatureDefnH hDefn); 00164 void OGRAPISpy_FD_GetGeomFieldDefn(OGRFeatureDefnH hDefn, int iGeomField, 00165 OGRGeomFieldDefnH hGeomField); 00166 void OGRAPISpy_FD_GetGeomFieldIndex(OGRFeatureDefnH hDefn, const char* pszFieldName); 00167 void OGRAPISpy_GFld_GetXXXX(OGRGeomFieldDefnH hGeomField, const char* pszOp); 00168 00169 CPL_C_END 00170 00171 #endif /* OGRAPISPY_ENABLED */ 00172 00173 #endif /* _OGRAPISPY_H_INCLUDED */