LCOV - code coverage report
Current view: top level - ogr/ogrsf_frmts/edigeo - ogredigeodriver.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 21 30 70.0 %
Date: 2024-11-21 22:18:42 Functions: 2 3 66.7 %

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  EDIGEO Translator
       4             :  * Purpose:  Implements OGREDIGEODriver.
       5             :  * Author:   Even Rouault, even dot rouault at spatialys.com
       6             :  *
       7             :  ******************************************************************************
       8             :  * Copyright (c) 2011, Even Rouault <even dot rouault at spatialys.com>
       9             :  *
      10             :  * SPDX-License-Identifier: MIT
      11             :  ****************************************************************************/
      12             : 
      13             : #include "ogr_edigeo.h"
      14             : #include "cpl_conv.h"
      15             : 
      16             : extern "C" void RegisterOGREDIGEO();
      17             : 
      18             : // g++ -fPIC -g -Wall ogr/ogrsf_frmts/edigeo/*.cpp -shared -o ogr_EDIGEO.so
      19             : // -Iport -Igcore -Iogr -Iogr/ogrsf_frmts -Iogr/ogrsf_frmts/generic
      20             : // -Iogr/ogrsf_frmts/edigeo -L. -lgdal
      21             : 
      22             : /************************************************************************/
      23             : /*                        OGREDIGEODriverIdentify()                     */
      24             : /************************************************************************/
      25             : 
      26       45224 : static int OGREDIGEODriverIdentify(GDALOpenInfo *poOpenInfo)
      27             : 
      28             : {
      29       47769 :     return poOpenInfo->fpL != nullptr &&
      30       47769 :            EQUAL(CPLGetExtension(poOpenInfo->pszFilename), "thf");
      31             : }
      32             : 
      33             : /************************************************************************/
      34             : /*                                Open()                                */
      35             : /************************************************************************/
      36             : 
      37           0 : static GDALDataset *OGREDIGEODriverOpen(GDALOpenInfo *poOpenInfo)
      38             : 
      39             : {
      40           0 :     if (poOpenInfo->eAccess == GA_Update ||
      41           0 :         !OGREDIGEODriverIdentify(poOpenInfo))
      42           0 :         return nullptr;
      43             : 
      44           0 :     OGREDIGEODataSource *poDS = new OGREDIGEODataSource();
      45             : 
      46           0 :     if (!poDS->Open(poOpenInfo->pszFilename))
      47             :     {
      48           0 :         delete poDS;
      49           0 :         poDS = nullptr;
      50             :     }
      51             : 
      52           0 :     return poDS;
      53             : }
      54             : 
      55             : /************************************************************************/
      56             : /*                           RegisterOGREDIGEO()                        */
      57             : /************************************************************************/
      58             : 
      59        1595 : void RegisterOGREDIGEO()
      60             : 
      61             : {
      62        1595 :     if (GDALGetDriverByName("EDIGEO") != nullptr)
      63         302 :         return;
      64             : 
      65        1293 :     GDALDriver *poDriver = new GDALDriver();
      66             : 
      67        1293 :     poDriver->SetDescription("EDIGEO");
      68        1293 :     poDriver->SetMetadataItem(GDAL_DCAP_VECTOR, "YES");
      69        1293 :     poDriver->SetMetadataItem(GDAL_DMD_LONGNAME,
      70        1293 :                               "French EDIGEO exchange format");
      71        1293 :     poDriver->SetMetadataItem(GDAL_DMD_EXTENSION, "thf");
      72        1293 :     poDriver->SetMetadataItem(GDAL_DMD_HELPTOPIC, "drivers/vector/edigeo.html");
      73             : 
      74        1293 :     poDriver->SetMetadataItem(GDAL_DCAP_VIRTUALIO, "YES");
      75        1293 :     poDriver->SetMetadataItem(GDAL_DCAP_FEATURE_STYLES, "YES");
      76        1293 :     poDriver->SetMetadataItem(GDAL_DCAP_FEATURE_STYLES_READ, "YES");
      77        1293 :     poDriver->SetMetadataItem(GDAL_DCAP_MULTIPLE_VECTOR_LAYERS, "YES");
      78        1293 :     poDriver->SetMetadataItem(GDAL_DMD_SUPPORTED_SQL_DIALECTS, "OGRSQL SQLITE");
      79             : 
      80        1293 :     poDriver->pfnOpen = OGREDIGEODriverOpen;
      81        1293 :     poDriver->pfnIdentify = OGREDIGEODriverIdentify;
      82             : 
      83        1293 :     GetGDALDriverManager()->RegisterDriver(poDriver);
      84             : }

Generated by: LCOV version 1.14