13#ifndef OGRLAYERDECORATOR_H_INCLUDED
14#define OGRLAYERDECORATOR_H_INCLUDED
20class CPL_DLL OGRLayerDecorator :
virtual public OGRLayer
25 OGRLayer *m_poDecoratedLayer;
29 OGRLayerDecorator(OGRLayer *poDecoratedLayer,
int bTakeOwnership);
30 ~OGRLayerDecorator()
override;
32 OGRGeometry *GetSpatialFilter()
override;
33 virtual OGRErr ISetSpatialFilter(
int iGeomField,
34 const OGRGeometry *)
override;
36 OGRErr SetAttributeFilter(
const char *)
override;
38 void ResetReading()
override;
39 OGRFeature *GetNextFeature()
override;
41 OGRFeature *GetFeature(
GIntBig nFID)
override;
42 OGRErr ISetFeature(OGRFeature *poFeature)
override;
43 OGRErr ISetFeatureUniqPtr(std::unique_ptr<OGRFeature> poFeature)
override;
44 OGRErr ICreateFeature(OGRFeature *poFeature)
override;
45 OGRErr ICreateFeatureUniqPtr(std::unique_ptr<OGRFeature> poFeature,
47 OGRErr IUpsertFeature(OGRFeature *poFeature)
override;
49 OGRErr IUpdateFeature(OGRFeature *poFeature,
int nUpdatedFieldsCount,
50 const int *panUpdatedFieldsIdx,
51 int nUpdatedGeomFieldsCount,
52 const int *panUpdatedGeomFieldsIdx,
53 bool bUpdateStyleString)
override;
55 GDALDataset *GetDataset()
override;
56 virtual bool GetArrowStream(
struct ArrowArrayStream *out_stream,
59 const char *GetName()
const override;
62 const OGRFeatureDefn *GetLayerDefn()
const override;
64 const OGRSpatialReference *GetSpatialRef()
const override;
66 GIntBig GetFeatureCount(
int bForce = TRUE)
override;
67 OGRErr IGetExtent(
int iGeomField, OGREnvelope *psExtent,
68 bool bForce =
true)
override;
69 OGRErr IGetExtent3D(
int iGeomField, OGREnvelope3D *psExtent,
70 bool bForce =
true)
override;
72 int TestCapability(
const char *)
const override;
74 virtual OGRErr CreateField(
const OGRFieldDefn *poField,
75 int bApproxOK = TRUE)
override;
76 OGRErr DeleteField(
int iField)
override;
77 OGRErr ReorderFields(
int *panMap)
override;
78 virtual OGRErr AlterFieldDefn(
int iField, OGRFieldDefn *poNewFieldDefn,
81 AlterGeomFieldDefn(
int iGeomField,
82 const OGRGeomFieldDefn *poNewGeomFieldDefn,
85 virtual OGRErr CreateGeomField(
const OGRGeomFieldDefn *poField,
86 int bApproxOK = TRUE)
override;
88 OGRErr SyncToDisk()
override;
90 OGRStyleTable *GetStyleTable()
override;
91 void SetStyleTableDirectly(OGRStyleTable *poStyleTable)
override;
93 void SetStyleTable(OGRStyleTable *poStyleTable)
override;
95 OGRErr StartTransaction()
override;
96 OGRErr CommitTransaction()
override;
97 OGRErr RollbackTransaction()
override;
99 const char *GetFIDColumn()
const override;
100 const char *GetGeometryColumn()
const override;
104 CSLConstList GetMetadata(
const char *pszDomain =
"")
override;
106 const char *pszDomain =
"")
override;
107 virtual const char *GetMetadataItem(
const char *pszName,
108 const char *pszDomain =
"")
override;
109 CPLErr SetMetadataItem(
const char *pszName,
const char *pszValue,
110 const char *pszDomain =
"")
override;
111 OGRErr Rename(
const char *pszNewName)
override;
113 OGRLayer *GetBaseLayer()
const
115 return m_poDecoratedLayer;
This class represents a layer of simple features, with access methods.
Definition ogrsf_frmts.h:61
virtual const OGRFeatureDefn * GetLayerDefn() const =0
Fetch the schema information for this layer.
CPLErr
Error category / error level.
Definition cpl_error.h:45
#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:1101
char ** CSLConstList
Type of a constant null-terminated list of nul terminated strings.
Definition cpl_port.h:1252
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:195
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:423
int OGRErr
Type for a OGR error.
Definition ogr_core.h:388
Classes related to registration of format support, and opening datasets.