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

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  SVG Translator
       4             :  * Purpose:  Implements OGRSVGDriver.
       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_svg.h"
      14             : #include "cpl_conv.h"
      15             : 
      16             : CPL_C_START
      17             : void RegisterOGRSVG();
      18             : CPL_C_END
      19             : 
      20             : // g++ -g -Wall -fPIC ogr/ogrsf_frmts/svg/*.c* -shared -o ogr_SVG.so -Iport
      21             : // -Igcore -Iogr -Iogr/ogrsf_frmts -Iogr/ogrsf_frmts/svg -L. -lgdal -DHAVE_EXPAT
      22             : 
      23             : /************************************************************************/
      24             : /*                                Open()                                */
      25             : /************************************************************************/
      26             : 
      27       24512 : static GDALDataset *OGRSVGDriverOpen(GDALOpenInfo *poOpenInfo)
      28             : 
      29             : {
      30       24512 :     if (poOpenInfo->eAccess == GA_Update || poOpenInfo->fpL == nullptr)
      31       22151 :         return nullptr;
      32             : 
      33        2361 :     if (strstr((const char *)poOpenInfo->pabyHeader, "<svg") == nullptr)
      34        2360 :         return nullptr;
      35             : 
      36           1 :     OGRSVGDataSource *poDS = new OGRSVGDataSource();
      37             : 
      38           1 :     if (!poDS->Open(poOpenInfo->pszFilename))
      39             :     {
      40           0 :         delete poDS;
      41           0 :         poDS = nullptr;
      42             :     }
      43             : 
      44           1 :     return poDS;
      45             : }
      46             : 
      47             : /************************************************************************/
      48             : /*                           RegisterOGRSVG()                           */
      49             : /************************************************************************/
      50             : 
      51        1595 : void RegisterOGRSVG()
      52             : 
      53             : {
      54        1595 :     if (!GDAL_CHECK_VERSION("OGR/SVG driver"))
      55           0 :         return;
      56             : 
      57        1595 :     if (GDALGetDriverByName("SVG") != nullptr)
      58         302 :         return;
      59             : 
      60        1293 :     GDALDriver *poDriver = new GDALDriver();
      61             : 
      62        1293 :     poDriver->SetDescription("SVG");
      63        1293 :     poDriver->SetMetadataItem(GDAL_DCAP_VECTOR, "YES");
      64        1293 :     poDriver->SetMetadataItem(GDAL_DMD_LONGNAME, "Scalable Vector Graphics");
      65        1293 :     poDriver->SetMetadataItem(GDAL_DMD_EXTENSION, "svg");
      66        1293 :     poDriver->SetMetadataItem(GDAL_DMD_HELPTOPIC, "drivers/vector/svg.html");
      67        1293 :     poDriver->SetMetadataItem(GDAL_DCAP_VIRTUALIO, "YES");
      68             : 
      69        1293 :     poDriver->pfnOpen = OGRSVGDriverOpen;
      70             : 
      71        1293 :     GetGDALDriverManager()->RegisterDriver(poDriver);
      72             : }

Generated by: LCOV version 1.14