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
|
a representation of a default Policy file that is stored as a file in the installation directory of an LSST product. More...
#include <DefaultPolicyFile.h>
Public Types | |
typedef std::shared_ptr< Persistable > | Ptr |
Public Member Functions | |
DefaultPolicyFile (const char *const productName, const std::string &filepath, const std::string &repos="", bool strict=true) | |
define a default policy file More... | |
virtual boost::filesystem::path | getInstallPath (const char *const productName) |
return the file path to the installation directory of a given named product. More... | |
const boost::filesystem::path & | getRepositoryPath () const |
return the full file path to the repository directory where this file will found. More... | |
virtual void | load (Policy &policy) const |
load the data from this Policy source into a Policy object. 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::string & | getFormatName () |
return the name of the format that the data is stored in. More... | |
const std::string & | getFormatName () const |
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 Member Functions | |
static boost::filesystem::path | installPathFor (const char *const productName) |
return the file path to the installation directory of a given named product. 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 |
a representation of a default Policy file that is stored as a file in the installation directory of an LSST product.
An instance is constructed from a product name, a relative path to a subdirectory representing a policy repository within the installed package, and a relative file path. To construct the full path to the file, the constructor looks for an environment variable of the form, PRODUCTNAME_DIR (where PRODUCTNAME is the given package name converted to all upper case) which names the directory where the product is installed. The full path, then, is the product installation directory concatonated with the repository directory, followed by the file path.
The policy file can reference other files; these will be automatically opened and loaded when load() is called. The paths stored in the policy files must be relative to the repository subdirectory within the product installation directory.
This class is the recommended PolicySource type to return in the PolicyConfigured interface's getDefaultPolicySource().
This class can be subclassed to provide a different implementation of determining the installation directory by overriding getInstallPath().
Definition at line 69 of file DefaultPolicyFile.h.
|
inherited |
Definition at line 77 of file Persistable.h.
lsst.pex::policy::DefaultPolicyFile::DefaultPolicyFile | ( | const char *const | productName, |
const std::string & | filepath, | ||
const std::string & | repos = "" , |
||
bool | strict = true |
||
) |
define a default policy file
productName | the name of the product that the default policy is installed as part of |
filepath | the relative pathname to the policy file. |
repos | the subdirectory with the product's install directory where policy files are stored. If an empty string (default), the filepath argument is relative to the installation directory. |
strict | if true (default), load() will throw an exception if it encounters recoverable parsing errors in the underlying file (or any of the files it references). Otherwise, the loaded Policy will be incomplete. This is identical to the strict argument to Policy's loadPolicyFiles(). |
Definition at line 40 of file DefaultPolicyFile.cc.
|
inlineinherited |
|
virtualinherited |
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.
IOError | if an error occurs while reading the first few characters of the source stream. |
Implements lsst.pex::policy::PolicySource.
|
inlineinherited |
Definition at line 183 of file PolicyFile.h.
|
virtual |
return the file path to the installation directory of a given named product.
This implementation uses the implementation provided by DefaultPolicyFile::installPathFor().
lsst::pex::exception::NotFoundError | if the environement variable is not defined. |
Definition at line 48 of file DefaultPolicyFile.cc.
|
inlineinherited |
|
inline |
return the full file path to the repository directory where this file will found.
Definition at line 104 of file DefaultPolicyFile.h.
|
static |
return the file path to the installation directory of a given named product.
In this implementation, the installation directory will be taken from the value of an environment variable PRODUCTNAME_DIR where PRODUCTNAME is the given name of the product with all letters converted to upper case.
Definition at line 61 of file DefaultPolicyFile.cc.
|
inlinevirtualinherited |
Implements lsst.pex::policy::PolicySource.
Definition at line 194 of file PolicyFile.h.
|
virtual |
load the data from this Policy source into a Policy object.
This implementation will automatically de-reference any file include directives in the policy file.
policy | the policy object to load the data into |
ParserException | if an error occurs while parsing the data |
IOError | if an I/O error occurs while reading from the source stream. |
Reimplemented from lsst.pex::policy::PolicyFile.
Definition at line 88 of file DefaultPolicyFile.cc.
|
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.
|
protectedinherited |
the path to the underlying policy file
Definition at line 214 of file PolicyFile.h.
|
protectedinherited |
Definition at line 135 of file PolicySource.h.
|
staticinherited |
reg-exp for an empty line
Definition at line 203 of file PolicyFile.h.
|
staticinherited |
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.
|
staticinherited |
a default set of formats
Definition at line 130 of file PolicySource.h.
|
staticinherited |
Definition at line 199 of file PolicyFile.h.
|
staticinherited |
the PAF file extension, ".paf"
Definition at line 200 of file PolicyFile.h.
|
staticinherited |
the XML file extension, ".xml"
Definition at line 202 of file PolicyFile.h.