1 : /******************************************************************************
2 : * $Id: ogravcbindriver.cpp 10645 2007-01-18 02:22:39Z warmerdam $
3 : *
4 : * Project: OGR
5 : * Purpose: OGRAVCBinDriver implementation (Arc/Info Binary Coverages)
6 : * Author: Frank Warmerdam, warmerdam@pobox.com
7 : *
8 : ******************************************************************************
9 : * Copyright (c) 2002, Frank Warmerdam <warmerdam@pobox.com>
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_avc.h"
31 :
32 : CPL_CVSID("$Id: ogravcbindriver.cpp 10645 2007-01-18 02:22:39Z warmerdam $");
33 :
34 : /************************************************************************/
35 : /* ~OGRAVCBinDriver() */
36 : /************************************************************************/
37 :
38 96 : OGRAVCBinDriver::~OGRAVCBinDriver()
39 :
40 : {
41 96 : }
42 :
43 : /************************************************************************/
44 : /* GetName() */
45 : /************************************************************************/
46 :
47 1874 : const char *OGRAVCBinDriver::GetName()
48 :
49 : {
50 1874 : return "AVCBin";
51 : }
52 :
53 : /************************************************************************/
54 : /* Open() */
55 : /************************************************************************/
56 :
57 29 : OGRDataSource *OGRAVCBinDriver::Open( const char * pszFilename,
58 : int bUpdate )
59 :
60 : {
61 : OGRAVCBinDataSource *poDS;
62 : OGRAVCE00DataSource *poDSE00;
63 :
64 29 : if( bUpdate )
65 2 : return NULL;
66 :
67 27 : poDS = new OGRAVCBinDataSource();
68 :
69 28 : if( poDS->Open( pszFilename, TRUE )
70 1 : && poDS->GetLayerCount() > 0 )
71 : {
72 1 : return poDS;
73 : }
74 26 : delete poDS;
75 :
76 26 : poDSE00 = new OGRAVCE00DataSource();
77 :
78 27 : if( poDSE00->Open( pszFilename, TRUE )
79 1 : && poDSE00->GetLayerCount() > 0 )
80 : {
81 1 : return poDSE00;
82 : }
83 25 : delete poDSE00;
84 :
85 25 : return NULL;
86 : }
87 :
88 : /************************************************************************/
89 : /* TestCapability() */
90 : /************************************************************************/
91 :
92 0 : int OGRAVCBinDriver::TestCapability( const char * pszCap )
93 :
94 : {
95 0 : return FALSE;
96 : }
97 :
98 : /************************************************************************/
99 : /* RegisterOGRAVC() */
100 : /************************************************************************/
101 :
102 64 : void RegisterOGRAVCBin()
103 :
104 : {
105 : OGRSFDriverRegistrar::GetRegistrar()->RegisterDriver(
106 64 : new OGRAVCBinDriver );
107 64 : }
|