/src/gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp
Line | Count | Source |
1 | | /****************************************************************************** |
2 | | * Project: OGR |
3 | | * Purpose: OGRGMLASDriver implementation |
4 | | * Author: Even Rouault, <even dot rouault at spatialys dot com> |
5 | | * |
6 | | * Initial development funded by the European Earth observation programme |
7 | | * Copernicus |
8 | | * |
9 | | ****************************************************************************** |
10 | | * Copyright (c) 2016, Even Rouault, <even dot rouault at spatialys dot com> |
11 | | * |
12 | | * SPDX-License-Identifier: MIT |
13 | | ****************************************************************************/ |
14 | | |
15 | | #include "ogr_gmlas.h" |
16 | | #include "ogrgmlasdrivercore.h" |
17 | | |
18 | | // g++ -I/usr/include/json -DxDEBUG_VERBOSE -DDEBUG -g -DDEBUG -ftrapv -Wall |
19 | | // -Wextra -Winit-self -Wunused-parameter -Wformat -Werror=format-security |
20 | | // -Wno-format-nonliteral -Wlogical-op -Wshadow -Werror=vla |
21 | | // -Wmissing-declarations -Wnon-virtual-dtor -Woverloaded-virtual |
22 | | // -fno-operator-names ogr/ogrsf_frmts/gmlas/*.cpp -fPIC -shared -o ogr_GMLAS.so |
23 | | // -Iport -Igcore -Iogr -Iogr/ogrsf_frmts -Iogr/ogrsf_frmts/mem -L. -lgdal |
24 | | // -I/home/even/spatialys/eea/inspire_gml/install-xerces-c-3.1.3/include |
25 | | |
26 | | /************************************************************************/ |
27 | | /* OGRGMLASDriverOpen() */ |
28 | | /************************************************************************/ |
29 | | |
30 | | static GDALDataset *OGRGMLASDriverOpen(GDALOpenInfo *poOpenInfo) |
31 | | |
32 | 2.44k | { |
33 | 2.44k | OGRGMLASDataSource *poDS; |
34 | | |
35 | 2.44k | if (poOpenInfo->eAccess == GA_Update) |
36 | 0 | return nullptr; |
37 | | |
38 | 2.44k | if (OGRGMLASDriverIdentify(poOpenInfo) == FALSE) |
39 | 0 | return nullptr; |
40 | | |
41 | 2.44k | poDS = new OGRGMLASDataSource(); |
42 | | |
43 | 2.44k | if (!poDS->Open(poOpenInfo)) |
44 | 1.48k | { |
45 | 1.48k | delete poDS; |
46 | 1.48k | return nullptr; |
47 | 1.48k | } |
48 | 960 | else |
49 | 960 | return poDS; |
50 | 2.44k | } |
51 | | |
52 | | /************************************************************************/ |
53 | | /* RegisterOGRGMLAS() */ |
54 | | /************************************************************************/ |
55 | | |
56 | | void RegisterOGRGMLAS() |
57 | | |
58 | 24 | { |
59 | 24 | if (GDALGetDriverByName(DRIVER_NAME) != nullptr) |
60 | 0 | return; |
61 | | |
62 | 24 | GDALDriver *poDriver = new GDALDriver(); |
63 | 24 | OGRGMLASDriverSetCommonMetadata(poDriver); |
64 | | |
65 | 24 | poDriver->pfnOpen = OGRGMLASDriverOpen; |
66 | 24 | poDriver->pfnCreateCopy = OGRGMLASDriverCreateCopy; |
67 | | |
68 | 24 | GetGDALDriverManager()->RegisterDriver(poDriver); |
69 | 24 | } |