1
/******************************************************************************
4
* Project: OpenGIS Simple Features Reference Implementation
5
* Purpose: Implements OGRGPSbabelDriver class.
6
* Author: Even Rouault, <even dot rouault at mines dash paris dot org>
8
******************************************************************************
9
* Copyright (c) 2010, Even Rouault
11
* Permission is hereby granted, free of charge, to any person obtaining a
12
* copy of this software and associated documentation files (the "Software"),
13
* to deal in the Software without restriction, including without limitation
14
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
15
* and/or sell copies of the Software, and to permit persons to whom the
16
* Software is furnished to do so, subject to the following conditions:
18
* The above copyright notice and this permission notice shall be included
19
* in all copies or substantial portions of the Software.
21
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27
* DEALINGS IN THE SOFTWARE.
28
****************************************************************************/
30
#include "ogr_gpsbabel.h"
33
// g++ -g -Wall -fPIC ogr/ogrsf_frmts/gpsbabel/*.cpp -shared -o ogr_GPSBabel.so -Iport -Igcore -Iogr -Iogr/ogrsf_frmts -Iogr/ogrsf_frmts/gpsbabel -L. -lgdal
37
/************************************************************************/
38
/* ~OGRGPSBabelDriver() */
39
/************************************************************************/
41
OGRGPSBabelDriver::~OGRGPSBabelDriver()
46
/************************************************************************/
48
/************************************************************************/
50
const char *OGRGPSBabelDriver::GetName()
56
/************************************************************************/
58
/************************************************************************/
60
OGRDataSource *OGRGPSBabelDriver::Open( const char * pszFilename,
67
OGRGPSBabelDataSource *poDS = new OGRGPSBabelDataSource();
69
if( !poDS->Open( pszFilename, bUpdate ) )
78
/************************************************************************/
79
/* CreateDataSource() */
80
/************************************************************************/
82
OGRDataSource *OGRGPSBabelDriver::CreateDataSource( const char * pszName,
86
OGRGPSBabelWriteDataSource *poDS = new OGRGPSBabelWriteDataSource();
88
if( !poDS->Create( pszName, papszOptions ) )
98
/************************************************************************/
99
/* DeleteDataSource() */
100
/************************************************************************/
102
OGRErr OGRGPSBabelDriver::DeleteDataSource( const char *pszFilename )
105
if( VSIUnlink( pszFilename ) == 0 )
108
return OGRERR_FAILURE;
111
/************************************************************************/
112
/* TestCapability() */
113
/************************************************************************/
115
int OGRGPSBabelDriver::TestCapability( const char * pszCap )
118
if( EQUAL(pszCap,ODrCCreateDataSource) )
120
else if( EQUAL(pszCap,ODrCDeleteDataSource) )
126
/************************************************************************/
127
/* RegisterOGRGPSBabel() */
128
/************************************************************************/
130
void RegisterOGRGPSBabel()
132
if (! GDAL_CHECK_VERSION("OGR/GPSBabel driver"))
135
OGRSFDriverRegistrar::GetRegistrar()->RegisterDriver( new OGRGPSBabelDriver );