OGR
port
cplkeywordparser.h
1
/******************************************************************************
2
* $Id: cplkeywordparser.h 34931 2016-08-05 17:13:05Z rouault $
3
*
4
* Project: Common Portability Library
5
* Purpose: Implementation of CPLKeywordParser - a class for parsing
6
* the keyword format used for files like QuickBird .RPB files.
7
* This is a slight variation on the NASAKeywordParser used for
8
* the PDS/ISIS2/ISIS3 formats.
9
* Author: Frank Warmerdam <warmerdam@pobox.com
10
*
11
******************************************************************************
12
* Copyright (c) 2008, Frank Warmerdam <warmerdam@pobox.com>
13
*
14
* Permission is hereby granted, free of charge, to any person obtaining a
15
* copy of this software and associated documentation files (the "Software"),
16
* to deal in the Software without restriction, including without limitation
17
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
18
* and/or sell copies of the Software, and to permit persons to whom the
19
* Software is furnished to do so, subject to the following conditions:
20
*
21
* The above copyright notice and this permission notice shall be included
22
* in all copies or substantial portions of the Software.
23
*
24
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30
* DEALINGS IN THE SOFTWARE.
31
****************************************************************************/
32
33
#ifndef CPL_KEYWORD_PARSER
34
#define CPL_KEYWORD_PARSER
35
36
#include "
cpl_string.h
"
37
38
/************************************************************************/
39
/* ==================================================================== */
40
/* CPLKeywordParser */
41
/* ==================================================================== */
42
/************************************************************************/
43
46
class
CPLKeywordParser
47
{
48
char
**papszKeywordList;
49
50
CPLString
osHeaderText;
51
const
char
*pszHeaderNext;
52
53
void
SkipWhite();
54
int
ReadWord(
CPLString
&osWord );
55
int
ReadPair(
CPLString
&osName,
CPLString
&osValue );
56
int
ReadGroup(
const
char
*pszPathPrefix );
57
58
public
:
59
CPLKeywordParser();
60
~CPLKeywordParser();
61
62
int
Ingest(
VSILFILE
*fp );
63
64
const
char
*GetKeyword(
const
char
*pszPath,
const
char
*pszDefault=NULL );
65
char
**GetAllKeywords() {
return
papszKeywordList; }
66
};
67
70
#endif
/* def CPL_KEYWORD_PARSER */
VSILFILE
FILE VSILFILE
Definition:
cpl_vsi.h:154
CPLString
Convenient string class based on std::string.
Definition:
cpl_string.h:338
cpl_string.h
Generated for GDAL by
1.8.14.