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

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  Carto Translator
       4             :  * Purpose:  Implements OGRCARTODriver.
       5             :  * Author:   Even Rouault, even dot rouault at spatialys.com
       6             :  *
       7             :  ******************************************************************************
       8             :  * Copyright (c) 2013, Even Rouault <even dot rouault at spatialys.com>
       9             :  *
      10             :  * SPDX-License-Identifier: MIT
      11             :  ****************************************************************************/
      12             : 
      13             : #include "ogr_carto.h"
      14             : #include "ogrcartodrivercore.h"
      15             : 
      16             : // g++ -g -Wall -fPIC -shared -o ogr_CARTO.so -Iport -Igcore -Iogr
      17             : // -Iogr/ogrsf_frmts -Iogr/ogrsf_frmts/carto ogr/ogrsf_frmts/carto/*.c* -L.
      18             : // -lgdal -Iogr/ogrsf_frmts/geojson/libjson
      19             : 
      20             : extern "C" void RegisterOGRCarto();
      21             : 
      22             : /************************************************************************/
      23             : /*                           OGRCartoDriverOpen()                     */
      24             : /************************************************************************/
      25             : 
      26          35 : static GDALDataset *OGRCartoDriverOpen(GDALOpenInfo *poOpenInfo)
      27             : 
      28             : {
      29          35 :     if (!OGRCartoDriverIdentify(poOpenInfo))
      30           0 :         return nullptr;
      31             : 
      32          35 :     OGRCARTODataSource *poDS = new OGRCARTODataSource();
      33             : 
      34          35 :     if (!poDS->Open(poOpenInfo->pszFilename, poOpenInfo->papszOpenOptions,
      35          35 :                     poOpenInfo->eAccess == GA_Update))
      36             :     {
      37          17 :         delete poDS;
      38          17 :         poDS = nullptr;
      39             :     }
      40             : 
      41          35 :     return poDS;
      42             : }
      43             : 
      44             : /************************************************************************/
      45             : /*                      OGRCartoDriverCreate()                        */
      46             : /************************************************************************/
      47             : 
      48           0 : static GDALDataset *OGRCartoDriverCreate(const char *pszName,
      49             :                                          CPL_UNUSED int nBands,
      50             :                                          CPL_UNUSED int nXSize,
      51             :                                          CPL_UNUSED int nYSize,
      52             :                                          CPL_UNUSED GDALDataType eDT,
      53             :                                          CPL_UNUSED char **papszOptions)
      54             : 
      55             : {
      56           0 :     OGRCARTODataSource *poDS = new OGRCARTODataSource();
      57             : 
      58           0 :     if (!poDS->Open(pszName, nullptr, TRUE))
      59             :     {
      60           0 :         delete poDS;
      61           0 :         CPLError(CE_Failure, CPLE_AppDefined,
      62             :                  "Carto driver doesn't support database creation.");
      63           0 :         return nullptr;
      64             :     }
      65             : 
      66           0 :     return poDS;
      67             : }
      68             : 
      69             : /************************************************************************/
      70             : /*                         RegisterOGRCARTO()                         */
      71             : /************************************************************************/
      72             : 
      73        1595 : void RegisterOGRCarto()
      74             : 
      75             : {
      76        1595 :     if (GDALGetDriverByName(DRIVER_NAME) != nullptr)
      77         302 :         return;
      78             : 
      79        1293 :     GDALDriver *poDriver = new GDALDriver();
      80        1293 :     OGRCartoDriverSetCommonMetadata(poDriver);
      81        1293 :     poDriver->pfnOpen = OGRCartoDriverOpen;
      82        1293 :     poDriver->pfnCreate = OGRCartoDriverCreate;
      83             : 
      84        1293 :     GetGDALDriverManager()->RegisterDriver(poDriver);
      85             : }

Generated by: LCOV version 1.14