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 * SPDX-License-Identifier: MIT
12 ****************************************************************************/
13
14#ifndef OGRAPISPY_H_INCLUDED
15#define OGRAPISPY_H_INCLUDED
16
17#include "gdal.h"
18
48#ifdef DEBUG
49#define OGRAPISPY_ENABLED
50#endif
51
52#ifdef OGRAPISPY_ENABLED
53
55
56extern int bOGRAPISpyEnabled;
57
58void OGRAPISpyDestroyMutex();
59
60int OGRAPISpyOpenTakeSnapshot(const char *pszName, int bUpdate);
61void OGRAPISpyOpen(const char *pszName, int bUpdate, int iSnapshot,
62 GDALDatasetH *phDS);
63void OGRAPISpyPreClose(GDALDatasetH hDS);
64void OGRAPISpyPostClose();
65void OGRAPISpyCreateDataSource(GDALDriverH hDriver, const char *pszName,
66 char **papszOptions, GDALDatasetH hDS);
67void OGRAPISpyDeleteDataSource(GDALDriverH hDriver, const char *pszName);
68
69void OGRAPISpy_DS_GetLayerCount(GDALDatasetH hDS);
70void OGRAPISpy_DS_GetLayer(GDALDatasetH hDS, int iLayer, OGRLayerH hLayer);
71void OGRAPISpy_DS_GetLayerByName(GDALDatasetH hDS, const char *pszLayerName,
72 OGRLayerH hLayer);
73void OGRAPISpy_DS_ExecuteSQL(GDALDatasetH hDS, const char *pszStatement,
74 OGRGeometryH hSpatialFilter,
75 const char *pszDialect, OGRLayerH hLayer);
76void OGRAPISpy_DS_ReleaseResultSet(GDALDatasetH hDS, OGRLayerH hLayer);
77
78void OGRAPISpy_DS_CreateLayer(GDALDatasetH hDS, const char *pszName,
79 OGRSpatialReferenceH hSpatialRef,
80 OGRwkbGeometryType eType, char **papszOptions,
81 OGRLayerH hLayer);
82void OGRAPISpy_DS_DeleteLayer(GDALDatasetH hDS, int iLayer);
83
84void OGRAPISpy_Dataset_StartTransaction(GDALDatasetH hDS, int bForce);
85void OGRAPISpy_Dataset_CommitTransaction(GDALDatasetH hDS);
86void OGRAPISpy_Dataset_RollbackTransaction(GDALDatasetH hDS);
87
88void OGRAPISpy_L_GetFeatureCount(OGRLayerH hLayer, int bForce);
89void OGRAPISpy_L_GetExtent(OGRLayerH hLayer, int bForce);
90void OGRAPISpy_L_GetExtentEx(OGRLayerH hLayer, int iGeomField, int bForce);
91void OGRAPISpy_L_GetExtent3D(OGRLayerH hLayer, int iGeomField, int bForce);
92void OGRAPISpy_L_SetAttributeFilter(OGRLayerH hLayer, const char *pszFilter);
93void OGRAPISpy_L_GetFeature(OGRLayerH hLayer, GIntBig nFeatureId);
94void OGRAPISpy_L_SetNextByIndex(OGRLayerH hLayer, GIntBig nIndex);
95void OGRAPISpy_L_GetNextFeature(OGRLayerH hLayer);
96void OGRAPISpy_L_SetFeature(OGRLayerH hLayer, OGRFeatureH hFeat);
97void OGRAPISpy_L_CreateFeature(OGRLayerH hLayer, OGRFeatureH hFeat);
98void OGRAPISpy_L_UpsertFeature(OGRLayerH hLayer, OGRFeatureH hFeat);
99void OGRAPISpy_L_CreateField(OGRLayerH hLayer, OGRFieldDefnH hField,
100 int bApproxOK);
101void OGRAPISpy_L_DeleteField(OGRLayerH hLayer, int iField);
102void OGRAPISpy_L_ReorderFields(OGRLayerH hLayer, int *panMap);
103void OGRAPISpy_L_ReorderField(OGRLayerH hLayer, int iOldFieldPos,
104 int iNewFieldPos);
105void OGRAPISpy_L_AlterFieldDefn(OGRLayerH hLayer, int iField,
106 OGRFieldDefnH hNewFieldDefn, int nFlags);
107void OGRAPISpy_L_CreateGeomField(OGRLayerH hLayer, OGRGeomFieldDefnH hField,
108 int bApproxOK);
109void OGRAPISpy_L_StartTransaction(OGRLayerH hLayer);
110void OGRAPISpy_L_CommitTransaction(OGRLayerH hLayer);
111void OGRAPISpy_L_RollbackTransaction(OGRLayerH hLayer);
112void OGRAPISpy_L_GetLayerDefn(OGRLayerH hLayer);
113void OGRAPISpy_L_FindFieldIndex(OGRLayerH hLayer, const char *pszFieldName,
114 int bExactMatch);
115void OGRAPISpy_L_GetSpatialRef(OGRLayerH hLayer);
116void OGRAPISpy_L_TestCapability(OGRLayerH hLayer, const char *pszCap);
117void OGRAPISpy_L_GetSpatialFilter(OGRLayerH hLayer);
118void OGRAPISpy_L_SetSpatialFilter(OGRLayerH hLayer, OGRGeometryH hGeom);
119void OGRAPISpy_L_SetSpatialFilterEx(OGRLayerH hLayer, int iGeomField,
120 OGRGeometryH hGeom);
121void OGRAPISpy_L_SetSpatialFilterRect(OGRLayerH hLayer, double dfMinX,
122 double dfMinY, double dfMaxX,
123 double dfMaxY);
124void OGRAPISpy_L_SetSpatialFilterRectEx(OGRLayerH hLayer, int iGeomField,
125 double dfMinX, double dfMinY,
126 double dfMaxX, double dfMaxY);
127void OGRAPISpy_L_ResetReading(OGRLayerH hLayer);
128void OGRAPISpy_L_SyncToDisk(OGRLayerH hLayer);
129void OGRAPISpy_L_DeleteFeature(OGRLayerH hLayer, GIntBig nFID);
130void OGRAPISpy_L_GetFIDColumn(OGRLayerH hLayer);
131void OGRAPISpy_L_GetGeometryColumn(OGRLayerH hLayer);
132void OGRAPISpy_L_GetName(OGRLayerH hLayer);
133void OGRAPISpy_L_GetGeomType(OGRLayerH hLayer);
134void OGRAPISpy_L_SetIgnoredFields(OGRLayerH hLayer,
135 const char **papszIgnoredFields);
136
137void OGRAPISpy_FD_GetGeomType(OGRFeatureDefnH hDefn);
138void OGRAPISpy_FD_GetFieldCount(OGRFeatureDefnH hDefn);
139void OGRAPISpy_FD_GetFieldDefn(OGRFeatureDefnH hDefn, int iField,
140 OGRFieldDefnH hGeomField);
141void OGRAPISpy_FD_GetFieldIndex(OGRFeatureDefnH hDefn,
142 const char *pszFieldName);
143
144void OGRAPISpy_Fld_GetXXXX(OGRFieldDefnH hField, const char *pszOp);
145
146void OGRAPISpy_FD_GetGeomFieldCount(OGRFeatureDefnH hDefn);
147void OGRAPISpy_FD_GetGeomFieldDefn(OGRFeatureDefnH hDefn, int iGeomField,
148 OGRGeomFieldDefnH hGeomField);
149void OGRAPISpy_FD_GetGeomFieldIndex(OGRFeatureDefnH hDefn,
150 const char *pszFieldName);
151void OGRAPISpy_GFld_GetXXXX(OGRGeomFieldDefnH hGeomField, const char *pszOp);
152
154
155#endif /* OGRAPISPY_ENABLED */
156
157#endif /* OGRAPISPY_H_INCLUDED */
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:283
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:279
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:199
Public (C callable) GDAL entry points.
void * GDALDatasetH
Opaque type used for the C bindings of the C++ GDALDataset class.
Definition gdal.h:376
void * GDALDriverH
Opaque type used for the C bindings of the C++ GDALDriver class.
Definition gdal.h:382
void * OGRGeometryH
Opaque type for a geometry.
Definition ogr_api.h:50
void * OGRSpatialReferenceH
Opaque type for a spatial reference system.
Definition ogr_api.h:65
void * OGRFieldDefnH
Opaque type for a field definition (OGRFieldDefn)
Definition ogr_api.h:406
void * OGRLayerH
Opaque type for a layer (OGRLayer)
Definition ogr_api.h:676
void * OGRFeatureDefnH
Opaque type for a feature definition (OGRFeatureDefn)
Definition ogr_api.h:408
void * OGRFeatureH
Opaque type for a feature (OGRFeature)
Definition ogr_api.h:410
struct OGRGeomFieldDefnHS * OGRGeomFieldDefnH
Opaque type for a geometry field definition (OGRGeomFieldDefn)
Definition ogr_api.h:415
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:407