GDAL

ograpispy.h
Go to the documentation of this file.
1/******************************************************************************
2 * $Id$
3 *
4 * Project: OpenGIS Simple Features Reference Implementation
5 * Purpose: OGR C API "Spy"
6 * Author: Even Rouault, even.rouault at spatialys.com
7 *
8 ******************************************************************************
9 * Copyright (c) 2014, Even Rouault <even.rouault at spatialys.com>
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining a
12 * copy of this software and associated documentation files (the "Software"),
13 * to deal in the Software without restriction, including without limitation
14 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15 * and/or sell copies of the Software, and to permit persons to whom the
16 * Software is furnished to do so, subject to the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included
19 * in all copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27 * DEALINGS IN THE SOFTWARE.
28 ****************************************************************************/
29
30#ifndef OGRAPISPY_H_INCLUDED
31#define OGRAPISPY_H_INCLUDED
32
33#include "gdal.h"
34
64#ifdef DEBUG
65#define OGRAPISPY_ENABLED
66#endif
67
68#ifdef OGRAPISPY_ENABLED
69
70 CPL_C_START
71
72 extern int bOGRAPISpyEnabled;
73
74 void OGRAPISpyDestroyMutex();
75
76 int OGRAPISpyOpenTakeSnapshot(const char *pszName, int bUpdate);
77 void OGRAPISpyOpen(const char *pszName, int bUpdate, int iSnapshot,
78 GDALDatasetH *phDS);
79 void OGRAPISpyPreClose(GDALDatasetH hDS);
80 void OGRAPISpyPostClose();
81 void OGRAPISpyCreateDataSource(OGRSFDriverH hDriver, const char *pszName,
82 char **papszOptions, OGRDataSourceH hDS);
83 void OGRAPISpyDeleteDataSource(OGRSFDriverH hDriver, const char *pszName);
84
85 void OGRAPISpy_DS_GetLayerCount(GDALDatasetH hDS);
86 void OGRAPISpy_DS_GetLayer(GDALDatasetH hDS, int iLayer, OGRLayerH hLayer);
87 void OGRAPISpy_DS_GetLayerByName(GDALDatasetH hDS, const char *pszLayerName,
88 OGRLayerH hLayer);
89 void OGRAPISpy_DS_ExecuteSQL(GDALDatasetH hDS, const char *pszStatement,
90 OGRGeometryH hSpatialFilter,
91 const char *pszDialect, OGRLayerH hLayer);
92 void OGRAPISpy_DS_ReleaseResultSet(GDALDatasetH hDS, OGRLayerH hLayer);
93
94 void OGRAPISpy_DS_CreateLayer(GDALDatasetH hDS, const char *pszName,
95 OGRSpatialReferenceH hSpatialRef,
96 OGRwkbGeometryType eType, char **papszOptions,
97 OGRLayerH hLayer);
98 void OGRAPISpy_DS_DeleteLayer(GDALDatasetH hDS, int iLayer);
99
100 void OGRAPISpy_Dataset_StartTransaction(GDALDatasetH hDS, int bForce);
101 void OGRAPISpy_Dataset_CommitTransaction(GDALDatasetH hDS);
102 void OGRAPISpy_Dataset_RollbackTransaction(GDALDatasetH hDS);
103
104 void OGRAPISpy_L_GetFeatureCount(OGRLayerH hLayer, int bForce);
105 void OGRAPISpy_L_GetExtent(OGRLayerH hLayer, int bForce);
106 void OGRAPISpy_L_GetExtentEx(OGRLayerH hLayer, int iGeomField, int bForce);
107 void OGRAPISpy_L_GetExtent3D(OGRLayerH hLayer, int iGeomField, int bForce);
108 void OGRAPISpy_L_SetAttributeFilter(OGRLayerH hLayer, const char *pszFilter);
109 void OGRAPISpy_L_GetFeature(OGRLayerH hLayer, GIntBig nFeatureId);
110 void OGRAPISpy_L_SetNextByIndex(OGRLayerH hLayer, GIntBig nIndex);
111 void OGRAPISpy_L_GetNextFeature(OGRLayerH hLayer);
112 void OGRAPISpy_L_SetFeature(OGRLayerH hLayer, OGRFeatureH hFeat);
113 void OGRAPISpy_L_CreateFeature(OGRLayerH hLayer, OGRFeatureH hFeat);
114 void OGRAPISpy_L_UpsertFeature(OGRLayerH hLayer, OGRFeatureH hFeat);
115 void OGRAPISpy_L_CreateField(OGRLayerH hLayer, OGRFieldDefnH hField,
116 int bApproxOK);
117 void OGRAPISpy_L_DeleteField(OGRLayerH hLayer, int iField);
118 void OGRAPISpy_L_ReorderFields(OGRLayerH hLayer, int *panMap);
119 void OGRAPISpy_L_ReorderField(OGRLayerH hLayer, int iOldFieldPos,
120 int iNewFieldPos);
121 void OGRAPISpy_L_AlterFieldDefn(OGRLayerH hLayer, int iField,
122 OGRFieldDefnH hNewFieldDefn, int nFlags);
123 void OGRAPISpy_L_CreateGeomField(OGRLayerH hLayer, OGRGeomFieldDefnH hField,
124 int bApproxOK);
125 void OGRAPISpy_L_StartTransaction(OGRLayerH hLayer);
126 void OGRAPISpy_L_CommitTransaction(OGRLayerH hLayer);
127 void OGRAPISpy_L_RollbackTransaction(OGRLayerH hLayer);
128 void OGRAPISpy_L_GetLayerDefn(OGRLayerH hLayer);
129 void OGRAPISpy_L_FindFieldIndex(OGRLayerH hLayer, const char *pszFieldName,
130 int bExactMatch);
131 void OGRAPISpy_L_GetSpatialRef(OGRLayerH hLayer);
132 void OGRAPISpy_L_TestCapability(OGRLayerH hLayer, const char *pszCap);
133 void OGRAPISpy_L_GetSpatialFilter(OGRLayerH hLayer);
134 void OGRAPISpy_L_SetSpatialFilter(OGRLayerH hLayer, OGRGeometryH hGeom);
135 void OGRAPISpy_L_SetSpatialFilterEx(OGRLayerH hLayer, int iGeomField,
136 OGRGeometryH hGeom);
137 void OGRAPISpy_L_SetSpatialFilterRect(OGRLayerH hLayer, double dfMinX,
138 double dfMinY, double dfMaxX,
139 double dfMaxY);
140 void OGRAPISpy_L_SetSpatialFilterRectEx(OGRLayerH hLayer, int iGeomField,
141 double dfMinX, double dfMinY,
142 double dfMaxX, double dfMaxY);
143 void OGRAPISpy_L_ResetReading(OGRLayerH hLayer);
144 void OGRAPISpy_L_SyncToDisk(OGRLayerH hLayer);
145 void OGRAPISpy_L_DeleteFeature(OGRLayerH hLayer, GIntBig nFID);
146 void OGRAPISpy_L_GetFIDColumn(OGRLayerH hLayer);
147 void OGRAPISpy_L_GetGeometryColumn(OGRLayerH hLayer);
148 void OGRAPISpy_L_GetName(OGRLayerH hLayer);
149 void OGRAPISpy_L_GetGeomType(OGRLayerH hLayer);
150 void OGRAPISpy_L_SetIgnoredFields(OGRLayerH hLayer,
151 const char **papszIgnoredFields);
152
153 void OGRAPISpy_FD_GetGeomType(OGRFeatureDefnH hDefn);
154 void OGRAPISpy_FD_GetFieldCount(OGRFeatureDefnH hDefn);
155 void OGRAPISpy_FD_GetFieldDefn(OGRFeatureDefnH hDefn, int iField,
156 OGRFieldDefnH hGeomField);
157 void OGRAPISpy_FD_GetFieldIndex(OGRFeatureDefnH hDefn,
158 const char *pszFieldName);
159
160 void OGRAPISpy_Fld_GetXXXX(OGRFieldDefnH hField, const char *pszOp);
161
162 void OGRAPISpy_FD_GetGeomFieldCount(OGRFeatureDefnH hDefn);
163 void OGRAPISpy_FD_GetGeomFieldDefn(OGRFeatureDefnH hDefn, int iGeomField,
164 OGRGeomFieldDefnH hGeomField);
165 void OGRAPISpy_FD_GetGeomFieldIndex(OGRFeatureDefnH hDefn,
166 const char *pszFieldName);
167 void OGRAPISpy_GFld_GetXXXX(OGRGeomFieldDefnH hGeomField, const char *pszOp);
168
169 CPL_C_END
170
171#endif /* OGRAPISPY_ENABLED */
172
173#endif /* OGRAPISPY_H_INCLUDED */
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:299
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:295
GIntBig
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:215
gdal.h
Public (C callable) GDAL entry points.
GDALDatasetH
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition gdal.h:291
OGRGeometryH
void * OGRGeometryH
Opaque type for a geometry.
Definition ogr_api.h:66
OGRSpatialReferenceH
void * OGRSpatialReferenceH
Opaque type for a spatial reference system.
Definition ogr_api.h:81
OGRFieldDefnH
void * OGRFieldDefnH
Opaque type for a field definition (OGRFieldDefn)
Definition ogr_api.h:418
OGRLayerH
void * OGRLayerH
Opaque type for a layer (OGRLayer)
Definition ogr_api.h:688
OGRFeatureDefnH
void * OGRFeatureDefnH
Opaque type for a feature definition (OGRFeatureDefn)
Definition ogr_api.h:420
OGRFeatureH
void * OGRFeatureH
Opaque type for a feature (OGRFeature)
Definition ogr_api.h:422
OGRGeomFieldDefnH
struct OGRGeomFieldDefnHS * OGRGeomFieldDefnH
Opaque type for a geometry field definition (OGRGeomFieldDefn)
Definition ogr_api.h:427
OGRSFDriverH
void * OGRSFDriverH
Opaque type for a OGR driver (OGRSFDriver)
Definition ogr_api.h:692
OGRDataSourceH
void * OGRDataSourceH
Opaque type for a OGR datasource (OGRDataSource)
Definition ogr_api.h:690
OGRwkbGeometryType
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:416