LSSTApplications
10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
pex_policy
11.0.rc2+6
src
paf
PAFParserFactory.cc
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2008, 2009, 2010 LSST Corporation.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <http://www.lsstcorp.org/LegalNotices/>.
21
*/
22
29
#include "
lsst/pex/policy/paf/PAFParserFactory.h
"
30
#include "
lsst/pex/policy/paf/PAFParser.h
"
31
32
namespace
lsst {
33
namespace
pex {
34
namespace
policy {
35
namespace
paf {
36
37
//@cond
38
39
using
boost::regex_search;
40
using
boost::regex;
41
using
std::string;
42
using
lsst::pex::policy::Policy
;
43
using
lsst::pex::policy::PolicyParser
;
44
45
/*
46
* a name for the format
47
*/
48
const
string
PAFParserFactory::FORMAT_NAME
(
"PAF"
);
49
50
const
regex
PAFParserFactory::LEADER_PATTERN
(
"^\\s*\\w"
);
51
const
regex
52
PAFParserFactory::CONTENTID
(
"^\\s*#\\s*<\\?cfg\\s+PAF(\\s+\\w+)*\\s*\\?>"
,
53
regex::icase);
54
55
/*
56
* create a new PolicyParser class and return a pointer to it. The
57
* caller is responsible for destroying the pointer.
58
* @param policy the Policy object that data should be loaded into.
59
*/
60
PolicyParser*
PAFParserFactory::createParser
(Policy& policy,
61
bool
strict)
const
62
{
63
return
new
PAFParser(policy, strict);
64
}
65
66
/*
67
* return the name for the format supported by the parser
68
*/
69
const
string
&
PAFParserFactory::getFormatName
() {
return
FORMAT_NAME
; }
70
71
/*
72
* analyze the given string assuming contains the leading characters
73
* from the data stream and return true if it is recognized as being in
74
* the format supported by this parser. If it is, return the name of
75
* the this format;
76
*/
77
bool
PAFParserFactory::isRecognized
(
const
string
& leaders)
const
{
78
return
(regex_search(leaders,
contentid
) ||
79
regex_search(leaders,
LEADER_PATTERN
));
80
}
81
82
83
//@endcond
84
85
}}}}
// end lsst::pex::policy::paf
lsst::pex.policy::PolicyParser
an abstract class for parsing serialized Policy data and loading it into a Policy object...
Definition:
PolicyParser.h:47
lsst::pex.policy::paf::PAFParserFactory::FORMAT_NAME
static const std::string FORMAT_NAME
Definition:
PAFParserFactory.h:96
PAFParser.h
definition of the PAFParser class
lsst::pex.policy::paf::PAFParserFactory::LEADER_PATTERN
static const boost::regex LEADER_PATTERN
Definition:
PAFParserFactory.h:101
lsst::pex.policy::Policy
a container for holding hierarchical configuration data in memory.
Definition:
Policy.h:169
lsst::pex.policy::paf::PAFParserFactory::contentid
boost::regex contentid
Definition:
PAFParserFactory.h:111
lsst::pex.policy::paf::PAFParserFactory::getFormatName
virtual const std::string & getFormatName()
PAFParserFactory.h
definition of the PAFParserFactory class
lsst::pex.policy::paf::PAFParserFactory::isRecognized
virtual bool isRecognized(const std::string &leaders) const
lsst::pex.policy::paf::PAFParserFactory::createParser
virtual PolicyParser * createParser(Policy &policy, bool strict=true) const
lsst::pex.policy::paf::PAFParserFactory::CONTENTID
static const boost::regex CONTENTID
Definition:
PAFParserFactory.h:108
Generated on Wed Sep 16 2015 13:35:34 for LSSTApplications by
1.8.5