#ifdef __cplusplus extern "C" { #endif #pragma once #include "hgdalType.h" #include "HGDALGDALMajorObject.h" #include "STDDeletable.h" #define OGRLAYER_DECL_VIRT(Type) \ OGRFeature_p Type##_GetFeature ( Type##_p p, int nFID );\ int Type##_GetFeatureCount ( Type##_p p, int bForce );\ OGRFeatureDefn_p Type##_GetLayerDefn ( Type##_p p );\ OGRFeature_p Type##_GetNextFeature ( Type##_p p );\ void Type##_ResetReading ( Type##_p p ); #define OGRLAYER_DECL_NONVIRT(Type) \ #define OGRLAYER_DECL_ACCESSOR(Type) \ #define OGRLAYER_DEF_VIRT(Type) \ OGRFeature_p Type##_GetFeature ( Type##_p p, int nFID ) {\ return from_nonconst_to_nonconst((OGRFeature*)((TYPECASTMETHOD(Type, GetFeature, OGRLayer))(p))->GetFeature(nFID));\ }\ \ int Type##_GetFeatureCount ( Type##_p p, int bForce ) {\ return ((TYPECASTMETHOD(Type, GetFeatureCount, OGRLayer))(p))->GetFeatureCount(bForce);\ }\ \ OGRFeatureDefn_p Type##_GetLayerDefn ( Type##_p p ) {\ return from_nonconst_to_nonconst((OGRFeatureDefn*)((TYPECASTMETHOD(Type, GetLayerDefn, OGRLayer))(p))->GetLayerDefn());\ }\ \ OGRFeature_p Type##_GetNextFeature ( Type##_p p ) {\ return from_nonconst_to_nonconst((OGRFeature*)((TYPECASTMETHOD(Type, GetNextFeature, OGRLayer))(p))->GetNextFeature());\ }\ \ void Type##_ResetReading ( Type##_p p ) {\ ((TYPECASTMETHOD(Type, ResetReading, OGRLayer))(p))->ResetReading();\ } #define OGRLAYER_DEF_NONVIRT(Type) \ #define OGRLAYER_DEF_ACCESSOR(Type) \ GDALMAJOROBJECT_DECL_VIRT(OGRLayer) DELETABLE_DECL_VIRT(OGRLayer) OGRLAYER_DECL_VIRT(OGRLayer) OGRLAYER_DECL_NONVIRT(OGRLayer) OGRLAYER_DECL_ACCESSOR(OGRLayer) #ifdef __cplusplus } #endif