~ubuntu-branches/debian/sid/gdal/sid

« back to all changes in this revision

Viewing changes to ogr/ogrsf_frmts/gpsbabel/ogrgpsbabeldriver.cpp

  • Committer: Package Import Robot
  • Author(s): Francesco Paolo Lovergine
  • Date: 2012-05-07 15:04:42 UTC
  • mfrom: (5.5.16 experimental)
  • Revision ID: package-import@ubuntu.com-20120507150442-2eks97loeh6rq005
Tags: 1.9.0-1
* Ready for sid, starting transition.
* All symfiles updated to latest builds.
* Added dh_numpy call in debian/rules to depend on numpy ABI.
* Policy bumped to 3.9.3, no changes required.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************************************
 
2
 * $Id$
 
3
 *
 
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>
 
7
 *
 
8
 ******************************************************************************
 
9
 * Copyright (c) 2010, Even Rouault
 
10
 *
 
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:
 
17
 *
 
18
 * The above copyright notice and this permission notice shall be included
 
19
 * in all copies or substantial portions of the Software.
 
20
 *
 
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
 ****************************************************************************/
 
29
 
 
30
#include "ogr_gpsbabel.h"
 
31
#include "cpl_conv.h"
 
32
 
 
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
 
34
 
 
35
CPL_CVSID("$Id$");
 
36
 
 
37
/************************************************************************/
 
38
/*                         ~OGRGPSBabelDriver()                           */
 
39
/************************************************************************/
 
40
 
 
41
OGRGPSBabelDriver::~OGRGPSBabelDriver()
 
42
 
 
43
{
 
44
}
 
45
 
 
46
/************************************************************************/
 
47
/*                              GetName()                               */
 
48
/************************************************************************/
 
49
 
 
50
const char *OGRGPSBabelDriver::GetName()
 
51
 
 
52
{
 
53
    return "GPSBabel";
 
54
}
 
55
 
 
56
/************************************************************************/
 
57
/*                                Open()                                */
 
58
/************************************************************************/
 
59
 
 
60
OGRDataSource *OGRGPSBabelDriver::Open( const char * pszFilename,
 
61
                                   int bUpdate )
 
62
 
 
63
{
 
64
    if (bUpdate)
 
65
        return NULL;
 
66
 
 
67
    OGRGPSBabelDataSource   *poDS = new OGRGPSBabelDataSource();
 
68
 
 
69
    if( !poDS->Open( pszFilename, bUpdate ) )
 
70
    {
 
71
        delete poDS;
 
72
        poDS = NULL;
 
73
    }
 
74
 
 
75
    return poDS;
 
76
}
 
77
 
 
78
/************************************************************************/
 
79
/*                          CreateDataSource()                          */
 
80
/************************************************************************/
 
81
 
 
82
OGRDataSource *OGRGPSBabelDriver::CreateDataSource( const char * pszName,
 
83
                                               char **papszOptions )
 
84
 
 
85
{
 
86
    OGRGPSBabelWriteDataSource   *poDS = new OGRGPSBabelWriteDataSource();
 
87
 
 
88
    if( !poDS->Create( pszName, papszOptions ) )
 
89
    {
 
90
        delete poDS;
 
91
        poDS = NULL;
 
92
    }
 
93
 
 
94
    return poDS;
 
95
}
 
96
 
 
97
 
 
98
/************************************************************************/
 
99
/*                          DeleteDataSource()                          */
 
100
/************************************************************************/
 
101
 
 
102
OGRErr OGRGPSBabelDriver::DeleteDataSource( const char *pszFilename )
 
103
 
 
104
{
 
105
    if( VSIUnlink( pszFilename ) == 0 )
 
106
        return OGRERR_NONE;
 
107
    else
 
108
        return OGRERR_FAILURE;
 
109
}
 
110
 
 
111
/************************************************************************/
 
112
/*                           TestCapability()                           */
 
113
/************************************************************************/
 
114
 
 
115
int OGRGPSBabelDriver::TestCapability( const char * pszCap )
 
116
 
 
117
{
 
118
    if( EQUAL(pszCap,ODrCCreateDataSource) )
 
119
        return TRUE;
 
120
    else if( EQUAL(pszCap,ODrCDeleteDataSource) )
 
121
        return TRUE;
 
122
    else
 
123
        return FALSE;
 
124
}
 
125
 
 
126
/************************************************************************/
 
127
/*                        RegisterOGRGPSBabel()                         */
 
128
/************************************************************************/
 
129
 
 
130
void RegisterOGRGPSBabel()
 
131
{
 
132
    if (! GDAL_CHECK_VERSION("OGR/GPSBabel driver"))
 
133
        return;
 
134
 
 
135
    OGRSFDriverRegistrar::GetRegistrar()->RegisterDriver( new OGRGPSBabelDriver );
 
136
}
 
137