LCOV - code coverage report
Current view: top level - ogr/ogrsf_frmts/xls - ogr_xls.h (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 9 9 100.0 %
Date: 2025-01-18 12:42:00 Functions: 5 5 100.0 %

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  XLS Translator
       4             :  * Purpose:  Definition of classes for OGR .xls driver.
       5             :  * Author:   Even Rouault, even dot rouault at spatialys.com
       6             :  *
       7             :  ******************************************************************************
       8             :  * Copyright (c) 2011-2012, Even Rouault <even dot rouault at spatialys.com>
       9             :  *
      10             :  * SPDX-License-Identifier: MIT
      11             :  ****************************************************************************/
      12             : 
      13             : #ifndef OGR_XLS_H_INCLUDED
      14             : #define OGR_XLS_H_INCLUDED
      15             : 
      16             : #include "ogrsf_frmts.h"
      17             : 
      18             : /************************************************************************/
      19             : /*                             OGRXLSLayer                              */
      20             : /************************************************************************/
      21             : 
      22             : class OGRXLSDataSource;
      23             : 
      24             : class OGRXLSLayer final : public OGRLayer,
      25             :                           public OGRGetNextFeatureThroughRaw<OGRXLSLayer>
      26             : {
      27             :     OGRXLSDataSource *poDS;
      28             :     OGRFeatureDefn *poFeatureDefn;
      29             : 
      30             :     char *pszName;
      31             :     int iSheet;
      32             :     bool bFirstLineIsHeaders;
      33             :     int nRows;
      34             :     unsigned short nCols;
      35             : 
      36             :     int nNextFID;
      37             : 
      38             :     OGRFeature *GetNextRawFeature();
      39             : 
      40             :     void DetectHeaderLine(const void *xlshandle);
      41             :     void DetectColumnTypes(const void *xlshandle, int *paeFieldTypes);
      42             : 
      43             :   public:
      44             :     OGRXLSLayer(OGRXLSDataSource *poDSIn, const char *pszSheetname,
      45             :                 int iSheetIn, int nRowsIn, unsigned short nColsIn);
      46             :     virtual ~OGRXLSLayer();
      47             : 
      48             :     virtual void ResetReading() override;
      49          61 :     DEFINE_GET_NEXT_FEATURE_THROUGH_RAW(OGRXLSLayer)
      50             : 
      51             :     virtual OGRFeatureDefn *GetLayerDefn() override;
      52             :     virtual GIntBig GetFeatureCount(int bForce = TRUE) override;
      53             : 
      54          30 :     virtual const char *GetName() override
      55             :     {
      56          30 :         return pszName;
      57             :     }
      58             : 
      59           2 :     virtual OGRwkbGeometryType GetGeomType() override
      60             :     {
      61           2 :         return wkbNone;
      62             :     }
      63             : 
      64             :     virtual int TestCapability(const char *) override;
      65             : 
      66           1 :     virtual OGRSpatialReference *GetSpatialRef() override
      67             :     {
      68           1 :         return nullptr;
      69             :     }
      70             : 
      71             :     GDALDataset *GetDataset() override;
      72             : };
      73             : 
      74             : /************************************************************************/
      75             : /*                           OGRXLSDataSource                           */
      76             : /************************************************************************/
      77             : 
      78             : class OGRXLSDataSource final : public GDALDataset
      79             : {
      80             :     OGRLayer **papoLayers;
      81             :     int nLayers;
      82             : 
      83             :     const void *xlshandle;
      84             : 
      85             :     CPLString m_osANSIFilename;
      86             : #ifdef _WIN32
      87             :     CPLString m_osTempFilename;
      88             : #endif
      89             :   public:
      90             :     OGRXLSDataSource();
      91             :     virtual ~OGRXLSDataSource();
      92             : 
      93             :     int Open(const char *pszFilename, int bUpdate);
      94             : 
      95          29 :     virtual int GetLayerCount() override
      96             :     {
      97          29 :         return nLayers;
      98             :     }
      99             : 
     100             :     virtual OGRLayer *GetLayer(int) override;
     101             : 
     102             :     const void *GetXLSHandle();
     103             : };
     104             : 
     105             : #endif /* ndef OGR_XLS_H_INCLUDED */

Generated by: LCOV version 1.14