LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
pex_policy
11.0+1
include
lsst
pex
policy
PolicySource.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2008, 2009, 2010 LSST Corporation.
6
*
7
* This product includes software developed by the
8
* LSST Project (http://www.lsst.org/).
9
*
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the LSST License Statement and
21
* the GNU General Public License along with this program. If not,
22
* see <http://www.lsstcorp.org/LegalNotices/>.
23
*/
24
34
#ifndef LSST_PEX_POLICY_SOURCE_H
35
#define LSST_PEX_POLICY_SOURCE_H
36
37
#include "
lsst/daf/base/Citizen.h
"
38
#include "
lsst/pex/policy/Policy.h
"
39
#include "
lsst/pex/policy/PolicyParserFactory.h
"
40
#include "
lsst/pex/policy/SupportedFormats.h
"
41
42
namespace
lsst {
43
namespace
pex {
44
namespace
policy {
45
53
class
PolicySource
:
public
lsst::daf::base::Citizen
{
54
public
:
55
60
PolicySource
(
SupportedFormats::Ptr
fmts=
defaultFormats
)
61
: lsst::daf::base::
Citizen
(typeid(this)),
_formats
(fmts)
62
{
63
if
(
defaultFormats
->size() == 0)
64
SupportedFormats::initDefaultFormats
(*
defaultFormats
);
65
}
66
70
virtual
~PolicySource
();
71
72
// /**
73
// * identifiers for the different supported formats
74
// */
75
// enum FormatType {
76
77
// /** Unknown and unsupported */
78
// UNSUPPORTED,
79
80
// /** XML format */
81
// XML,
82
83
// /** Policy authoring format (PAF) */
84
// PAF,
85
86
// /** Supported format but unknown */
87
// UNKNOWN
88
// };
89
90
// /**
91
// * determine the format that the data is stored in and return its format
92
// * type identifier. Note that UNKNOWN will be returned
93
// * if the format is supported--that is, the data can be read into a
94
// * Policy object--but otherwise does not have a defined type identifier
95
// * defined. This may cause the first few records of the source to
96
// * be read.
97
// * @exception IOError if an error occurs while reading the first few
98
// * characters of the source stream.
99
// */
100
// virtual FormatType getFormatType();
101
108
virtual
const
std::string&
getFormatName
() = 0;
109
111
118
virtual
void
load
(
Policy
& policy)
const
= 0;
119
virtual
void
load
(
Policy
& policy) = 0;
121
122
// /**
123
// * returns true if the given string containing a content identifier
124
// * indicates that it contains dictionary data. Dictionary data has
125
// * a content id of "<?cfg ... dictionary ?>" (where ... indicates
126
// * the format); policy data has an id of "<?cfg ... policy ?>".
127
// */
128
// static bool indicatesDictionary(const std::string& contentid) {
129
// return regex_search(contentid, DICTIONARY_CONTENT);
130
// }
131
135
static
SupportedFormats::Ptr
defaultFormats
;
136
137
// static const regex DICTIONARY_CONTENT;
138
139
protected
:
140
141
142
SupportedFormats::Ptr
_formats
;
143
};
144
145
146
}}}
// end namespace lsst::pex::policy
147
148
#endif // LSST_PEX_POLICY_SOURCE_H
149
150
PolicyParserFactory.h
a definition of the PolicyParserFactory class
lsst::pex::policy::Policy
a container for holding hierarchical configuration data in memory.
Definition:
Policy.h:169
lsst::pex::policy::PolicySource::load
virtual void load(Policy &policy) const =0
lsst::pex::policy::PolicySource::_formats
SupportedFormats::Ptr _formats
Definition:
PolicySource.h:142
lsst::pex::policy::PolicySource::getFormatName
virtual const std::string & getFormatName()=0
lsst::pex::policy::PolicySource
an abstract class representing a source of serialized Policy parameter data. This might be a file or ...
Definition:
PolicySource.h:53
lsst::pex::policy::PolicySource::defaultFormats
static SupportedFormats::Ptr defaultFormats
Definition:
PolicySource.h:135
SupportedFormats.h
definition of the SupportedFormats class
Citizen.h
lsst::pex::policy::SupportedFormats::initDefaultFormats
static void initDefaultFormats(SupportedFormats &sf)
Definition:
SupportedFormats.cc:40
lsst::daf::base::Citizen::Citizen
Citizen(const std::type_info &)
Definition:
Citizen.cc:173
Policy.h
lsst::daf::base::Citizen
Citizen is a class that should be among all LSST classes base classes, and handles basic memory manag...
Definition:
Citizen.h:56
lsst::pex::policy::PolicySource::~PolicySource
virtual ~PolicySource()
Definition:
PolicySource.cc:35
lsst::pex::policy::SupportedFormats::Ptr
boost::shared_ptr< SupportedFormats > Ptr
Definition:
SupportedFormats.h:55
lsst::pex::policy::PolicySource::PolicySource
PolicySource(SupportedFormats::Ptr fmts=defaultFormats)
Definition:
PolicySource.h:60
Generated on Thu Sep 24 2015 02:29:23 for LSSTApplications by
1.8.5