lsst.pex.policy
20.0.0
include
lsst
pex
policy
SupportedFormats.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
33
#ifndef LSST_PEX_POLICY_SUPPORTEDFORMATS_H
34
#define LSST_PEX_POLICY_SUPPORTEDFORMATS_H
35
36
#include <map>
37
38
#include "
lsst/pex/policy/PolicyParserFactory.h
"
39
40
#include <memory>
41
42
namespace
lsst
{
43
namespace
pex {
44
namespace
policy {
45
46
// class SupportedFormats { // causes problems in construction
47
52
class
SupportedFormats
{
53
public
:
54
typedef
std::shared_ptr<SupportedFormats>
Ptr
;
55
56
// SupportedFormats() : _formats() { }
57
58
SupportedFormats
() : _formats() {}
59
63
void
registerFormat
(
const
PolicyParserFactory::Ptr
& factory);
64
71
const
std::string
&
recognizeType
(
const
std::string
& leaders)
const
;
72
76
bool
supports
(
const
std::string
& name)
const
{
return
(_formats.
find
(name) != _formats.
end
()); }
77
82
PolicyParserFactory::Ptr
getFactory
(
const
std::string
& name)
const
;
83
88
static
void
initDefaultFormats
(
SupportedFormats
& sf);
89
93
int
size
() {
return
_formats.
size
(); }
94
95
private
:
96
typedef
std::map<std::string, PolicyParserFactory::Ptr>
Lookup;
97
Lookup _formats;
98
};
99
100
}
// namespace policy
101
}
// namespace pex
102
}
// namespace lsst
103
104
#endif // LSST_PEX_POLICY_SUPPORTEDFORMATS_H
lsst::pex::policy::SupportedFormats::Ptr
std::shared_ptr< SupportedFormats > Ptr
Definition:
SupportedFormats.h:54
lsst::pex::policy::SupportedFormats::SupportedFormats
SupportedFormats()
Definition:
SupportedFormats.h:58
PolicyParserFactory.h
a definition of the PolicyParserFactory class
std::string
STL class.
std::shared_ptr< SupportedFormats >
std::map::find
T find(T... args)
std::map::size
T size(T... args)
lsst::pex::policy::SupportedFormats::initDefaultFormats
static void initDefaultFormats(SupportedFormats &sf)
initialize a given SupportFormats instance with the formats known by default.
Definition:
SupportedFormats.cc:40
lsst::pex::policy::SupportedFormats::recognizeType
const std::string & recognizeType(const std::string &leaders) const
analyze the given string assuming contains the leading characters from the data stream and return tru...
Definition:
SupportedFormats.cc:61
lsst::pex::policy::SupportedFormats::registerFormat
void registerFormat(const PolicyParserFactory::Ptr &factory)
register a factory method for policy format parsers
Definition:
SupportedFormats.cc:47
lsst::pex::policy::SupportedFormats::supports
bool supports(const std::string &name) const
return true if the name resolves to a registered format
Definition:
SupportedFormats.h:76
lsst::pex::policy::SupportedFormats::getFactory
PolicyParserFactory::Ptr getFactory(const std::string &name) const
get a pointer to a factory with a given name.
Definition:
SupportedFormats.cc:74
std::map< std::string, PolicyParserFactory::Ptr >
lsst
lsst::pex::policy::SupportedFormats
a list of supported Policy formats.
Definition:
SupportedFormats.h:52
lsst::pex::policy::SupportedFormats::size
int size()
return the number formats currently registered
Definition:
SupportedFormats.h:93
std::map::end
T end(T... args)
Generated on Wed Jun 24 2020 19:06:08 for lsst.pex.policy by
1.8.18