13#ifndef OGRMUTEXEDLAYER_H_INCLUDED
14#define OGRMUTEXEDLAYER_H_INCLUDED
18#include "ogrlayerdecorator.h"
19#include "cpl_multiproc.h"
28class CPL_DLL OGRMutexedLayer final :
public OGRLayerDecorator
33 CPLMutex *m_hMutex =
nullptr;
37 OGRMutexedLayer(
OGRLayer *poDecoratedLayer,
int bTakeOwnership,
41 ~OGRMutexedLayer()
override;
44 virtual OGRErr ISetSpatialFilter(
int iGeomField,
47 OGRErr SetAttributeFilter(
const char *)
override;
49 void ResetReading()
override;
57 const int *panUpdatedFieldsIdx,
58 int nUpdatedGeomFieldsCount,
59 const int *panUpdatedGeomFieldsIdx,
60 bool bUpdateStyleString)
override;
64 virtual bool GetArrowStream(
struct ArrowArrayStream *out_stream,
67 const char *GetName()
const override;
73 GIntBig GetFeatureCount(
int bForce = TRUE)
override;
75 bool bForce)
override;
77 int TestCapability(
const char *)
const override;
80 int bApproxOK = TRUE)
override;
81 OGRErr DeleteField(
int iField)
override;
82 OGRErr ReorderFields(
int *panMap)
override;
86 AlterGeomFieldDefn(
int iGeomField,
90 OGRErr SyncToDisk()
override;
93 void SetStyleTableDirectly(
OGRStyleTable *poStyleTable)
override;
97 OGRErr StartTransaction()
override;
98 OGRErr CommitTransaction()
override;
99 OGRErr RollbackTransaction()
override;
101 const char *GetFIDColumn()
const override;
102 const char *GetGeometryColumn()
const override;
106 char **GetMetadata(
const char *pszDomain =
"")
override;
107 CPLErr SetMetadata(
char **papszMetadata,
108 const char *pszDomain =
"")
override;
109 virtual const char *GetMetadataItem(
const char *pszName,
110 const char *pszDomain =
"")
override;
111 CPLErr SetMetadataItem(
const char *pszName,
const char *pszValue,
112 const char *pszDomain =
"")
override;
113 OGRErr Rename(
const char *pszNewName)
override;
A set of associated raster bands, usually from one file.
Definition gdal_dataset.h:76
Simple container for a bounding region (rectangle)
Definition ogr_core.h:44
Definition of a feature class or feature layer.
Definition ogr_feature.h:504
A simple feature, including geometry and attributes.
Definition ogr_feature.h:934
Definition of an attribute of an OGRFeatureDefn.
Definition ogr_feature.h:69
Definition of a geometry field of an OGRFeatureDefn.
Definition ogr_feature.h:332
Abstract base class for all geometry classes.
Definition ogr_geometry.h:357
This class represents a layer of simple features, with access methods.
Definition ogrsf_frmts.h:61
This class represents an OpenGIS Spatial Reference System, and contains methods for converting betwee...
Definition ogr_spatialref.h:152
This class represents a style table.
Definition ogr_featurestyle.h:69
CPLErr
Error category.
Definition cpl_error.h:37
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Helper to remove the copy and assignment constructors so that the compiler will not generate the defa...
Definition cpl_port.h:936
char ** CSLConstList
Type of a constant null-terminated list of nul terminated strings.
Definition cpl_port.h:1087
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:205
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:405
int OGRErr
Type for a OGR error.
Definition ogr_core.h:370