LSSTApplications  19.0.0-14-gb0260a2+d60062ef16,20.0.0+1540ce6389,20.0.0+7c6b12c2f9,20.0.0+ae956f52c5,20.0.0+be870186d9,20.0.0+e2e26847c2,20.0.0-1-g10df615+7683e4f082,20.0.0-1-g253301a+7c6b12c2f9,20.0.0-1-g2b7511a+46a6078777,20.0.0-1-g3dda6ea+606b36f8c0,20.0.0-1-g4d801e7+901ee84527,20.0.0-1-g5b95a8c+a5fa15ec54,20.0.0-1-gb058bd0+46a6078777,20.0.0-1-gb88604f+acecce4127,20.0.0-1-gc96f8cb+61a4a056b1,20.0.0-1-gedffbd8+4f0e391d5e,20.0.0-10-g0891cd99+aadc987f3e,20.0.0-10-g9a20bd332+576ca7b471,20.0.0-17-gcdbda88+ed0d4927ab,20.0.0-2-g4dae9ad+61a4a056b1,20.0.0-2-g61b8584+85c46248f3,20.0.0-2-gb780d76+f45b7d88f4,20.0.0-2-gf072044+7c6b12c2f9,20.0.0-21-g9bbb7f7+61a4a056b1,20.0.0-22-gc512666+9eba1c4719,20.0.0-23-g8900aa8+68630f7098,20.0.0-3-g1653f94+85c46248f3,20.0.0-3-g4cc78c6+63636aeed8,20.0.0-3-g750bffe+e05f822de9,20.0.0-3-gbd60e8c+ff10c6d78d,20.0.0-32-g15a0e07c+ff1c9f120b,20.0.0-4-g97dc21a+68630f7098,20.0.0-4-gfea843c+f45b7d88f4,20.0.0-5-g357b56b+f45b7d88f4,20.0.0-6-g9a5b7a1+2c4171520d,20.0.0-61-g4de25fb+e4dd172200,20.0.0-7-gcda7bf1+85e953d7e4,w.2020.43
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
lsst.pex::policy::PolicyFile Class Reference

a representation of a file containing Policy parameter data. More...

#include <PolicyFile.h>

Inheritance diagram for lsst.pex::policy::PolicyFile:
lsst.pex::policy::PolicySource lsst::daf::base::Persistable lsst.pex::policy::DefaultPolicyFile lsst.pex::policy::UrnPolicyFile

Public Types

typedef std::shared_ptr< PersistablePtr
 

Public Member Functions

 PolicyFile (const std::string &filepath, const SupportedFormats::Ptr &fmts=defaultFormats)
 create a Policy file that points a file with given path. More...
 
 PolicyFile (const char *filepath, const SupportedFormats::Ptr &fmts=defaultFormats)
 
 PolicyFile (const boost::filesystem::path &filepath, const SupportedFormats::Ptr &fmts=defaultFormats)
 
 PolicyFile (const std::string &filepath, const PolicyParserFactory::Ptr &parserFactory)
 create a Policy file that points a file with given path. More...
 
 PolicyFile (const boost::filesystem::path &filepath, const PolicyParserFactory::Ptr &parserFactory)
 
 PolicyFile (const std::string &filepath, const boost::filesystem::path &reposDir, const SupportedFormats::Ptr &fmts=defaultFormats)
 create a Policy file that points a file with given path in a policy file repository. More...
 
 PolicyFile (const boost::filesystem::path &filepath, const boost::filesystem::path &reposDir, const SupportedFormats::Ptr &fmts=defaultFormats)
 
 PolicyFile (const std::string &filepath, const boost::filesystem::path &reposDir, const PolicyParserFactory::Ptr &parserFactory)
 create a Policy file that points a file with given path in a policy file repository. More...
 
 PolicyFile (const boost::filesystem::path &filepath, const boost::filesystem::path &reposDir, const PolicyParserFactory::Ptr &parserFactory)
 
 PolicyFile (const SupportedFormats::Ptr &fmts=defaultFormats)
 create a "null" Policy file that points to an unspecified file. More...
 
const std::string getPath () const
 return the file path as a string More...
 
bool exists () const
 return true if the file exists. More...
 
virtual const std::stringgetFormatName ()
 return the name of the format that the data is stored in. More...
 
const std::stringgetFormatName () const
 
virtual void load (Policy &policy) const
 load the data from this Policy source into a Policy object More...
 
virtual void load (Policy &policy)
 
template<class Archive >
void serialize (Archive &, unsigned int const)
 Template boost::serialization function for the base class. More...
 

Static Public Attributes

static const std::string EXT_PAF
 
static const std::string EXT_XML
 the PAF file extension, ".paf" More...
 
static const boost::regex SPACE_RE
 the XML file extension, ".xml" More...
 
static const boost::regex COMMENT
 reg-exp for an empty line More...
 
static const boost::regex CONTENTID
 reg-exp for the start of a comment More...
 
static SupportedFormats::Ptr defaultFormats
 a default set of formats More...
 

Protected Attributes

boost::filesystem::path _file
 the path to the underlying policy file More...
 
SupportedFormats::Ptr _formats
 

Detailed Description

a representation of a file containing Policy parameter data.

When this class represents a file that actually exists on disk, then it can determine which format it is in and load its contents into a Policy.

Definition at line 58 of file PolicyFile.h.

Member Typedef Documentation

◆ Ptr

Definition at line 77 of file Persistable.h.

Constructor & Destructor Documentation

◆ PolicyFile() [1/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const std::string filepath,
const SupportedFormats::Ptr fmts = defaultFormats 
)
explicit

create a Policy file that points a file with given path.

Typically, one need only provide a file path; this class will determine the type automatically using the default set of supported formats. If you want to control what formats (and the particular parsers) to allow, you can provide your own SupportedFormats instance. To force interpretation as a particular format, you can a PolicyParserFactory instance in lieu of a SupportedFormats (see PolicyFile(const std::string&, const SupportedFormats::Ptr&) ).

Parameters
filepaththe path to the file, either as a string or a boost::filesystem::path instance
fmtsa SupportedFormats object to use. An instance encapsulates a configured set of known formats.

◆ PolicyFile() [2/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const char *  filepath,
const SupportedFormats::Ptr fmts = defaultFormats 
)
explicit

◆ PolicyFile() [3/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const boost::filesystem::path &  filepath,
const SupportedFormats::Ptr fmts = defaultFormats 
)
explicit

◆ PolicyFile() [4/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const std::string filepath,
const PolicyParserFactory::Ptr parserFactory 
)

create a Policy file that points a file with given path.

These constructors allow you to force interpretation as a particular format by passing in the PolicyParserFactory to use.

Parameters
filepaththe path to the file, either as a string or a boost::filesystem::path instance
parserFactorya PolicyParserFactory implementation to be used in parsing the file, assuming a particular format.

◆ PolicyFile() [5/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const boost::filesystem::path &  filepath,
const PolicyParserFactory::Ptr parserFactory 
)

◆ PolicyFile() [6/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const std::string filepath,
const boost::filesystem::path &  reposDir,
const SupportedFormats::Ptr fmts = defaultFormats 
)

create a Policy file that points a file with given path in a policy file repository.

Typically, one need only provide a file path; this class will determine the type automatically using the default set of supported formats. If you want to control what formats (and the particular parsers) to allow, you can provide your own SupportedFormats instance. To force interpretation as a particular format, you can a PolicyParserFactory instance in lieu of a SupportedFormats (see PolicyFile(const std::string&, const SupportedFormats::Ptr&) ).

Parameters
filepaththe path to the file, either as a string or a boost::filesystem::path instance
reposDirthe policy repository directory to assume. If filepath is a relative path, then the full path to the file will be relative to this repository directory.
fmtsa SupportedFormats object to use. An instance encapsulates a configured set of known formats.

◆ PolicyFile() [7/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const boost::filesystem::path &  filepath,
const boost::filesystem::path &  reposDir,
const SupportedFormats::Ptr fmts = defaultFormats 
)

◆ PolicyFile() [8/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const std::string filepath,
const boost::filesystem::path &  reposDir,
const PolicyParserFactory::Ptr parserFactory 
)

create a Policy file that points a file with given path in a policy file repository.

These constructors allow you to force interpretation as a particular format by passing in the PolicyParserFactory to use.

Parameters
filepaththe path to the file, either as a string or a boost::filesystem::path instance
reposDirthe policy repository directory to assume. If filepath is a relative path, then the full path to the file will be relative to this repository directory.
parserFactorya PolicyParserFactory implementation to be used in parsing the file, assuming a particular format.

◆ PolicyFile() [9/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const boost::filesystem::path &  filepath,
const boost::filesystem::path &  reposDir,
const PolicyParserFactory::Ptr parserFactory 
)

◆ PolicyFile() [10/10]

lsst.pex::policy::PolicyFile::PolicyFile ( const SupportedFormats::Ptr fmts = defaultFormats)

create a "null" Policy file that points to an unspecified file.

Parameters
fmtsa SupportedFormats object to use. An instance encapsulates a configured set of known formats.

Member Function Documentation

◆ exists()

bool lsst.pex::policy::PolicyFile::exists ( ) const
inline

return true if the file exists.

Definition at line 171 of file PolicyFile.h.

171 { return boost::filesystem::exists(_file); }

◆ getFormatName() [1/2]

virtual const std::string& lsst.pex::policy::PolicyFile::getFormatName ( )
virtual

return the name of the format that the data is stored in.

This may cause the first few records of the source to be read. In this implementation, once the format is definitely determined, the format name is cached internally, preventing re-determination on the next call to this function.

Exceptions
IOErrorif an error occurs while reading the first few characters of the source stream.

Implements lsst.pex::policy::PolicySource.

◆ getFormatName() [2/2]

const std::string& lsst.pex::policy::PolicyFile::getFormatName ( ) const
inline

Definition at line 183 of file PolicyFile.h.

183 { return const_cast<PolicyFile*>(this)->getFormatName(); }

◆ getPath()

const std::string lsst.pex::policy::PolicyFile::getPath ( ) const
inline

return the file path as a string

Definition at line 166 of file PolicyFile.h.

166 { return _file.string(); }

◆ load() [1/2]

virtual void lsst.pex::policy::PolicyFile::load ( Policy policy)
inlinevirtual

Implements lsst.pex::policy::PolicySource.

Definition at line 194 of file PolicyFile.h.

194  {
195  ((const PolicyFile*)this)->load(policy); // delegate to const version
196  }

◆ load() [2/2]

virtual void lsst.pex::policy::PolicyFile::load ( Policy policy) const
virtual

load the data from this Policy source into a Policy object

Parameters
policythe policy object to load the data into
Exceptions
ParserExceptionif an error occurs while parsing the data
IOErrorif an I/O error occurs while reading from the source stream.

Implements lsst.pex::policy::PolicySource.

Reimplemented in lsst.pex::policy::DefaultPolicyFile.

◆ serialize()

template<class Archive >
void lsst::daf::base::Persistable::serialize ( Archive &  ,
unsigned int const   
)
inlineinherited

Template boost::serialization function for the base class.

Doesn't actually do anything, since there is no data associated with the base. Inline to allow expansion wherever needed.

Definition at line 87 of file Persistable.h.

87 {}

Member Data Documentation

◆ _file

boost::filesystem::path lsst.pex::policy::PolicyFile::_file
protected

the path to the underlying policy file

Definition at line 214 of file PolicyFile.h.

◆ _formats

SupportedFormats::Ptr lsst.pex::policy::PolicySource::_formats
protectedinherited

Definition at line 135 of file PolicySource.h.

◆ COMMENT

const boost::regex lsst.pex::policy::PolicyFile::COMMENT
static

reg-exp for an empty line

Definition at line 203 of file PolicyFile.h.

◆ CONTENTID

const boost::regex lsst.pex::policy::PolicyFile::CONTENTID
static

reg-exp for the start of a comment

reg-exp for a Policy content identifier, "<?cfg [format] [content] ?>"

Definition at line 208 of file PolicyFile.h.

◆ defaultFormats

SupportedFormats::Ptr lsst.pex::policy::PolicySource::defaultFormats
staticinherited

a default set of formats

Definition at line 130 of file PolicySource.h.

◆ EXT_PAF

const std::string lsst.pex::policy::PolicyFile::EXT_PAF
static

Definition at line 199 of file PolicyFile.h.

◆ EXT_XML

const std::string lsst.pex::policy::PolicyFile::EXT_XML
static

the PAF file extension, ".paf"

Definition at line 200 of file PolicyFile.h.

◆ SPACE_RE

const boost::regex lsst.pex::policy::PolicyFile::SPACE_RE
static

the XML file extension, ".xml"

Definition at line 202 of file PolicyFile.h.


The documentation for this class was generated from the following file:
lsst.pex::policy::PolicyFile::getFormatName
virtual const std::string & getFormatName()
return the name of the format that the data is stored in.
lsst.pex::policy::PolicyFile::_file
boost::filesystem::path _file
the path to the underlying policy file
Definition: PolicyFile.h:214
lsst.pex::policy::PolicyFile::PolicyFile
PolicyFile(const std::string &filepath, const SupportedFormats::Ptr &fmts=defaultFormats)
create a Policy file that points a file with given path.