#ifdef __cplusplus extern "C" { #endif #pragma once #include "hgdalType.h" #include "HGDALGDALMajorObject.h" #include "STDDeletable.h" #define GDALDATASET_DECL_VIRT(Type) \ OGRLayer_p Type##_GetLayer ( Type##_p p, int iLayer );\ int Type##_GetLayerCount ( Type##_p p ); #define GDALDATASET_DECL_NONVIRT(Type) \ #define GDALDATASET_DECL_ACCESSOR(Type) \ #define GDALDATASET_DEF_VIRT(Type) \ OGRLayer_p Type##_GetLayer ( Type##_p p, int iLayer ) {\ return from_nonconst_to_nonconst((OGRLayer*)((TYPECASTMETHOD(Type, GetLayer, GDALDataset))(p))->GetLayer(iLayer));\ }\ \ int Type##_GetLayerCount ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, GetLayerCount, GDALDataset))(p))->GetLayerCount();\ } #define GDALDATASET_DEF_NONVIRT(Type) \ #define GDALDATASET_DEF_ACCESSOR(Type) \ GDALMAJOROBJECT_DECL_VIRT(GDALDataset) DELETABLE_DECL_VIRT(GDALDataset) GDALDATASET_DECL_VIRT(GDALDataset) GDALDATASET_DECL_NONVIRT(GDALDataset) GDALDATASET_DECL_ACCESSOR(GDALDataset) #ifdef __cplusplus } #endif