Line data Source code
1 : /********************************************************************** 2 : * $Id$ 3 : * 4 : * Name: mitab_ogr_drive.h 5 : * Project: Mid/mif tab ogr support 6 : * Language: C++ 7 : * Purpose: Header file containing public definitions for the library. 8 : * Author: Stephane Villeneuve, stephane.v@videotron.ca 9 : * 10 : ********************************************************************** 11 : * Copyright (c) 1999, 2000, Stephane Villeneuve 12 : * Copyright (c) 2014, Even Rouault <even.rouault at spatialys.com> 13 : * 14 : * SPDX-License-Identifier: MIT 15 : **********************************************************************/ 16 : 17 : #include "mitab.h" 18 : #include "ogrsf_frmts.h" 19 : 20 : #ifndef MITAB_OGR_DRIVER_H_INCLUDED_ 21 : #define MITAB_OGR_DRIVER_H_INCLUDED_ 22 : 23 : /*===================================================================== 24 : * OGRTABDataSource Class 25 : * 26 : * These classes handle all the file types supported by the MITAB lib. 27 : * through the IMapInfoFile interface. 28 : *====================================================================*/ 29 : class OGRTABDataSource : public GDALDataset 30 : { 31 : CPL_DISALLOW_COPY_ASSIGN(OGRTABDataSource) 32 : 33 : private: 34 : char *m_pszDirectory; 35 : 36 : int m_nLayerCount; 37 : IMapInfoFile **m_papoLayers; 38 : 39 : char **m_papszOptions; 40 : int m_bCreateMIF; 41 : int m_bSingleFile; 42 : int m_bSingleLayerAlreadyCreated; 43 : GBool m_bQuickSpatialIndexMode; 44 : int m_nBlockSize; 45 : 46 : private: 47 2428 : inline bool GetUpdate() const 48 : { 49 2428 : return eAccess == GA_Update; 50 : } 51 : 52 : public: 53 : OGRTABDataSource(); 54 : virtual ~OGRTABDataSource(); 55 : 56 : int Open(GDALOpenInfo *poOpenInfo, int bTestOpen); 57 : int Create(const char *pszName, char **papszOptions); 58 : 59 : int GetLayerCount() override; 60 : OGRLayer *GetLayer(int) override; 61 : int TestCapability(const char *) override; 62 : 63 : OGRLayer *ICreateLayer(const char *pszName, 64 : const OGRGeomFieldDefn *poGeomFieldDefn, 65 : CSLConstList papszOptions) override; 66 : 67 : char **GetFileList() override; 68 : 69 : virtual OGRLayer *ExecuteSQL(const char *pszStatement, 70 : OGRGeometry *poSpatialFilter, 71 : const char *pszDialect) override; 72 : }; 73 : 74 : void CPL_DLL RegisterOGRTAB(); 75 : 76 : #endif /* MITAB_OGR_DRIVER_H_INCLUDED_ */