Coverage Report

Created: 2026-08-14 09:29

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gdal/ogr/ogrsf_frmts/plscenes/ogrplscenesdriver.cpp
Line
Count
Source
1
/******************************************************************************
2
 *
3
 * Project:  PlanetLabs scene driver
4
 * Purpose:  PlanetLabs scene driver
5
 * Author:   Even Rouault, even dot rouault at spatialys.com
6
 *
7
 ******************************************************************************
8
 * Copyright (c) 2015-2016, Planet Labs
9
 *
10
 * SPDX-License-Identifier: MIT
11
 ****************************************************************************/
12
13
#include "ogr_plscenes.h"
14
#include "ogrplscenesdrivercore.h"
15
16
/************************************************************************/
17
/*                          OGRPLScenesOpen()                           */
18
/************************************************************************/
19
20
static GDALDataset *OGRPLScenesOpen(GDALOpenInfo *poOpenInfo)
21
62
{
22
62
    if (!OGRPLSCENESDriverIdentify(poOpenInfo) ||
23
62
        poOpenInfo->eAccess == GA_Update)
24
0
        return nullptr;
25
26
62
    char **papszOptions = CSLTokenizeStringComplex(
27
62
        poOpenInfo->pszFilename + strlen("PLScenes:"), ",", TRUE, FALSE);
28
62
    CPLString osVersion = CSLFetchNameValueDef(
29
62
        papszOptions, "version",
30
62
        CSLFetchNameValueDef(poOpenInfo->papszOpenOptions, "VERSION", ""));
31
62
    CSLDestroy(papszOptions);
32
33
62
    if (EQUAL(osVersion, "v0") || EQUAL(osVersion, "v1"))
34
0
    {
35
0
        CPLError(CE_Failure, CPLE_AppDefined,
36
0
                 "This API version has been removed or deprecated. "
37
0
                 "Please use DATA_V1 API instead");
38
0
        return nullptr;
39
0
    }
40
62
    else if (EQUAL(osVersion, "data_v1") || EQUAL(osVersion, ""))
41
62
    {
42
62
        return OGRPLScenesDataV1Dataset::Open(poOpenInfo);
43
62
    }
44
0
    else
45
0
    {
46
0
        CPLError(CE_Failure, CPLE_AppDefined, "Unhandled API version: %s",
47
0
                 osVersion.c_str());
48
0
        return nullptr;
49
0
    }
50
62
}
51
52
/************************************************************************/
53
/*                        RegisterOGRPLSCENES()                         */
54
/************************************************************************/
55
56
void RegisterOGRPLSCENES()
57
58
22
{
59
22
    if (GDALGetDriverByName(DRIVER_NAME) != nullptr)
60
0
        return;
61
62
22
    GDALDriver *poDriver = new GDALDriver();
63
22
    OGRPLSCENESDriverSetCommonMetadata(poDriver);
64
65
22
    poDriver->pfnOpen = OGRPLScenesOpen;
66
67
22
    GetGDALDriverManager()->RegisterDriver(poDriver);
68
22
}