Line data Source code
1 : /****************************************************************************** 2 : * $Id$ 3 : * 4 : * Project: STS Translator 5 : * Purpose: Definition of classes finding SDTS support into OGRDriver 6 : * framework. 7 : * Author: Frank Warmerdam, warmerdam@pobox.com 8 : * 9 : ****************************************************************************** 10 : * Copyright (c) 1999, Frank Warmerdam 11 : * 12 : * SPDX-License-Identifier: MIT 13 : ****************************************************************************/ 14 : 15 : #ifndef OGR_SDTS_H_INCLUDED 16 : #define OGR_SDTS_H_INCLUDED 17 : 18 : #include "sdts_al.h" 19 : #include "ogrsf_frmts.h" 20 : 21 : class OGRSDTSDataSource; 22 : 23 : /************************************************************************/ 24 : /* OGRSDTSLayer */ 25 : /************************************************************************/ 26 : 27 : class OGRSDTSLayer final : public OGRLayer 28 : { 29 : OGRFeatureDefn *poFeatureDefn; 30 : 31 : SDTSTransfer *poTransfer; 32 : int iLayer; 33 : SDTSIndexedReader *poReader; 34 : 35 : OGRSDTSDataSource *poDS; 36 : 37 : OGRFeature *GetNextUnfilteredFeature(); 38 : 39 : public: 40 : OGRSDTSLayer(SDTSTransfer *, int, OGRSDTSDataSource *); 41 : ~OGRSDTSLayer(); 42 : 43 : void ResetReading() override; 44 : OGRFeature *GetNextFeature() override; 45 : 46 52 : OGRFeatureDefn *GetLayerDefn() override 47 : { 48 52 : return poFeatureDefn; 49 : } 50 : 51 : int TestCapability(const char *) override; 52 : }; 53 : 54 : /************************************************************************/ 55 : /* OGRSDTSDataSource */ 56 : /************************************************************************/ 57 : 58 : class OGRSDTSDataSource final : public GDALDataset 59 : { 60 : SDTSTransfer *poTransfer; 61 : 62 : int nLayers; 63 : OGRSDTSLayer **papoLayers; 64 : 65 : OGRSpatialReference *poSRS; 66 : 67 : public: 68 : OGRSDTSDataSource(); 69 : ~OGRSDTSDataSource(); 70 : 71 : int Open(const char *pszFilename, int bTestOpen); 72 : 73 44 : int GetLayerCount() override 74 : { 75 44 : return nLayers; 76 : } 77 : 78 : OGRLayer *GetLayer(int) override; 79 : }; 80 : 81 : #endif /* ndef OGR_SDTS_H_INCLUDED */