OGS
v6.3.3
|
Wrapper around a Boost Property Tree with some basic error reporting features.
Features. This class:
The purpose of this class is to reduce or completely avoid the amount of error-handling code in routines that take configuration parameters.
Most methods of this class check that they have not been called before for the same ConfigTree
and the same parameter. This behaviour helps to enforce that every parameter is read exactly once during parsing of the configuration settings.
The most notable restriction of this class when compared to plain tree traversal is, that one must know all the XML tags (i.e. configuration parameters) at compile time. It is not possible to read from this class, which configuration parameters are present in the tree. This restriction, however, is intended, because it provides the possibility to get all existing configuration parameters from the source code.
This class maintains a read counter for each parameter accessed through any of its methods. Read counters are increased with every read (the only exception being the peekConfigParameter() method). The destructor finally decreases the read counter for every tag/attribute it find on the current level of the XML tree. If the increases/decreases don't cancel each other, warning messages are generated. This check can also be enforced before destruction by using the BaseLib::checkAndInvalidate() functions.
The design of this class entails some limitations compared to traversing a plain tree, e.g., it is not possible to obtain a list of tags or attributes from the tree, but one has to explicitly query the specific tags/attributes one is interested in. That way it is possible to get all used configuration parameters directly from the source code where this class is used, and to maintain the quality of the configuration parameter documentation.
Instances of this class only keep a reference to the underlying boost::property_tree
. Therefore it is necessary that the underlying property tree stays intact as long as any instance—i.e. the top level ConfigTree and any of its children—reference it. In order to simplify the handling of this dependence, the class ConfigTreeTopLevel can be used.
The construction of a ConfigTree from the content of an XML file can be done with the function BaseLib::makeConfigTree(), which performs many error checks. For limitations of the used XML parser, please have a look at that function's documentation.
Definition at line 95 of file ConfigTree.h.
#include <ConfigTree.h>
Classes | |
struct | CountType |
class | ParameterIterator |
class | SubtreeIterator |
class | ValueIterator |
Public Types | |
using | PTree = boost::property_tree::ptree |
The tree being wrapped by this class. More... | |
using | Callback = std::function< void(const std::string &filename, const std::string &path, const std::string &message)> |
Public Member Functions | |
ConfigTree (PTree const &tree, std::string filename, Callback error_cb, Callback warning_cb) | |
ConfigTree (PTree &&, std::string const &, Callback const &, Callback const &)=delete | |
ConfigTree (ConfigTree const &)=delete | |
copying is not compatible with the semantics of this class More... | |
ConfigTree (ConfigTree &&other) | |
ConfigTree & | operator= (ConfigTree const &)=delete |
copying is not compatible with the semantics of this class More... | |
ConfigTree & | operator= (ConfigTree &&other) |
std::string const & | getProjectFileName () const |
Used to get the project file name. More... | |
~ConfigTree () | |
Methods for directly accessing parameter values | |
template<typename T > | |
T | getConfigParameter (std::string const ¶m) const |
template<typename T > | |
T | getConfigParameter (std::string const ¶m, T const &default_value) const |
template<typename T > | |
boost::optional< T > | getConfigParameterOptional (std::string const ¶m) const |
template<typename T > | |
Range< ValueIterator< T > > | getConfigParameterList (std::string const ¶m) const |
Methods for accessing parameters that have attributes | |
The The support for parameters with attributes is limited in the sense that it is not possible to peek/check them. However, such functionality can easily be added on demand. | |
ConfigTree | getConfigParameter (std::string const &root) const |
boost::optional< ConfigTree > | getConfigParameterOptional (std::string const &root) const |
Range< ParameterIterator > | getConfigParameterList (std::string const ¶m) const |
template<typename T > | |
T | getValue () const |
template<typename T > | |
T | getConfigAttribute (std::string const &attr) const |
template<typename T > | |
T | getConfigAttribute (std::string const &attr, T const &default_value) const |
template<typename T > | |
boost::optional< T > | getConfigAttributeOptional (std::string const &attr) const |
Methods for peeking and checking parameters | |
To be used in builder/factory functions: E.g., one can peek a parameter denoting the type of an object to generate in the builder, and check the type parameter in the constructor of the generated object. | |
template<typename T > | |
T | peekConfigParameter (std::string const ¶m) const |
template<typename T > | |
void | checkConfigParameter (std::string const ¶m, T const &value) const |
template<typename Ch > | |
void | checkConfigParameter (std::string const ¶m, Ch const *value) const |
Make checkConfigParameter() work for string literals. More... | |
Methods for accessing subtrees | |
ConfigTree | getConfigSubtree (std::string const &root) const |
boost::optional< ConfigTree > | getConfigSubtreeOptional (std::string const &root) const |
Range< SubtreeIterator > | getConfigSubtreeList (std::string const &root) const |
Methods for ignoring parameters | |
void | ignoreConfigParameter (std::string const ¶m) const |
void | ignoreConfigParameterAll (std::string const ¶m) const |
void | ignoreConfigAttribute (std::string const &attr) const |
Static Public Member Functions | |
static void | onerror (std::string const &filename, std::string const &path, std::string const &message) |
static void | onwarning (std::string const &filename, std::string const &path, std::string const &message) |
static void | assertNoSwallowedErrors () |
Asserts that there have not been any errors reported in the destructor. More... | |
Private Types | |
enum class | Attr : bool { TAG = false , ATTR = true } |
Used to indicate if dealing with XML tags or XML attributes. More... | |
using | KeyType = std::pair< Attr, std::string > |
A pair (is attribute, tag/attribute name). More... | |
Private Member Functions | |
template<typename T > | |
boost::optional< T > | getConfigParameterOptionalImpl (std::string const ¶m, T *) const |
Default implementation of reading a value of type T. More... | |
template<typename T > | |
boost::optional< std::vector< T > > | getConfigParameterOptionalImpl (std::string const ¶m, std::vector< T > *) const |
Implementation of reading a vector of values of type T. More... | |
ConfigTree (PTree const &tree, ConfigTree const &parent, std::string const &root) | |
Used for wrapping a subtree. More... | |
void | error (std::string const &message) const |
void | warning (std::string const &message) const |
void | checkKeyname (std::string const &key) const |
Checks if key complies with the rules [a-z0-9_]. More... | |
std::string | joinPaths (std::string const &p1, std::string const &p2) const |
Used to generate the path of a subtree. More... | |
void | checkUnique (std::string const &key) const |
Asserts that the key has not been read yet. More... | |
void | checkUniqueAttr (std::string const &attr) const |
Asserts that the attribute attr has not been read yet. More... | |
template<typename T > | |
CountType & | markVisited (std::string const &key, Attr const is_attr, bool peek_only) const |
CountType & | markVisited (std::string const &key, Attr const is_attr, bool const peek_only) const |
void | markVisitedDecrement (Attr const is_attr, std::string const &key) const |
bool | hasChildren () const |
Checks if this tree has any children. More... | |
void | checkAndInvalidate () |
Static Private Member Functions | |
static std::string | shortString (std::string const &s) |
returns a short string at suitable for error/warning messages More... | |
Private Attributes | |
boost::property_tree::ptree const * | _tree |
The wrapped tree. More... | |
std::string | _path |
A path printed in error/warning messages. More... | |
std::string | _filename |
The path of the file from which this tree has been read. More... | |
std::map< KeyType, CountType > | _visited_params |
bool | _have_read_data = false |
Indicates if the plain data contained in this tree has already been read. More... | |
Callback | _onerror |
Custom error callback. More... | |
Callback | _onwarning |
Custom warning callback. More... | |
Static Private Attributes | |
static const char | pathseparator = '/' |
Character separating two path components. More... | |
static const std::string | key_chars_start = "abcdefghijklmnopqrstuvwxyz" |
Set of allowed characters as the first letter of a key name. More... | |
static const std::string | key_chars = key_chars_start + "_0123456789" |
Set of allowed characters in a key name. More... | |
Friends | |
void | checkAndInvalidate (ConfigTree *const conf) |
void | checkAndInvalidate (ConfigTree &conf) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
void | checkAndInvalidate (std::unique_ptr< ConfigTree > const &conf) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
using BaseLib::ConfigTree::Callback = std::function<void(const std::string& filename, const std::string& path, const std::string& message)> |
Type of the function objects used as callbacks.
Arguments of the callback:
filename
the file being from which this ConfigTree has been read. path
the path in the tree where the message was generated. message
the message to be printed. Definition at line 229 of file ConfigTree.h.
|
private |
A pair (is attribute, tag/attribute name).
Definition at line 614 of file ConfigTree.h.
using BaseLib::ConfigTree::PTree = boost::property_tree::ptree |
The tree being wrapped by this class.
Definition at line 220 of file ConfigTree.h.
|
strongprivate |
Used to indicate if dealing with XML tags or XML attributes.
Enumerator | |
---|---|
TAG | |
ATTR |
Definition at line 538 of file ConfigTree.h.
|
explicit |
Creates a new instance wrapping the given Boost Property Tree.
tree | the Boost Property Tree to be wrapped |
filename | the file from which the tree has been read |
error_cb | callback function to be called on error. |
warning_cb | callback function to be called on warning. |
The callback functions must be valid callable functions, i.e. not nullptr's. They are configurable in order to make unit tests of this class easier. They should not be provided in production code!
Defaults are strict: By default, both callbacks are set to the same function, i.e., warnings will also result in program abortion!
Definition at line 35 of file ConfigTree.cpp.
References _onerror, _onwarning, and OGS_FATAL.
Referenced by getConfigSubtreeOptional(), BaseLib::ConfigTree::SubtreeIterator::operator*(), and BaseLib::ConfigTree::ValueIterator< ValueType >::operator*().
|
explicitdelete |
This constructor is deleted in order to prevent the user from passing temporary instances of PTree
. Doing so would lead to a dangling reference _tree
and to program crash.
|
delete |
copying is not compatible with the semantics of this class
BaseLib::ConfigTree::ConfigTree | ( | ConfigTree && | other | ) |
After being moved from, other
is in an undefined state and must not be used anymore!
Definition at line 62 of file ConfigTree.cpp.
BaseLib::ConfigTree::~ConfigTree | ( | ) |
The destructor performs the check if all nodes at the current level of the tree have been read. Errors raised by the check are swallowed. Use assertNoSwallowedErrors() manually to check for those.
Definition at line 75 of file ConfigTree.cpp.
References checkAndInvalidate(), configtree_destructor_error_messages, and ERR().
|
explicitprivate |
Used for wrapping a subtree.
Definition at line 52 of file ConfigTree.cpp.
References checkKeyname().
|
static |
Asserts that there have not been any errors reported in the destructor.
Definition at line 246 of file ConfigTree.cpp.
References configtree_destructor_error_messages, ERR(), and OGS_FATAL.
Referenced by main().
|
private |
Checks if the top level of this tree has been read entirely (and not too often).
Definition at line 387 of file ConfigTree.cpp.
References _have_read_data, _tree, _visited_params, ATTR, markVisitedDecrement(), shortString(), TAG, and warning().
Referenced by operator=(), and ~ConfigTree().
void BaseLib::ConfigTree::checkConfigParameter | ( | std::string const & | param, |
Ch const * | value | ||
) | const |
Make checkConfigParameter() work for string literals.
Definition at line 166 of file ConfigTree-impl.h.
References error().
void BaseLib::ConfigTree::checkConfigParameter | ( | std::string const & | param, |
T const & | value | ||
) | const |
Assert that param
has the given value
.
Convenience method combining getConfigParameter(std::string const&) with a check.
Definition at line 156 of file ConfigTree-impl.h.
References error().
Referenced by MaterialPropertyLib::createAverageMolarMass(), MaterialPropertyLib::createBishopsPowerLaw(), MaterialPropertyLib::createBishopsSaturationCutoff(), MaterialLib::PorousMedium::createBrooksCorey(), MaterialLib::PorousMedium::createCapillaryPressureModel(), MaterialPropertyLib::createCapillaryPressureRegularizedVanGenuchten(), MaterialPropertyLib::createCapillaryPressureVanGenuchten(), ProcessLib::createCentralDifferencesJacobianAssembler(), MaterialLib::Fracture::CohesiveZoneModeI::createCohesiveZoneModeI(), ProcessLib::createCompareJacobiansJacobianAssembler(), ProcessLib::ComponentTransport::createComponentTransportProcess(), MaterialPropertyLib::createConstant(), ParameterLib::createConstantParameter(), MaterialLib::Fracture::Permeability::createConstantPermeability(), ProcessLib::createConstraintDirichletBoundaryCondition(), NumLib::createConvergenceCriterionDeltaX(), NumLib::createConvergenceCriterionPerComponentDeltaX(), NumLib::createConvergenceCriterionPerComponentResidual(), NumLib::createConvergenceCriterionResidual(), MaterialLib::Fracture::createCoulomb(), MaterialLib::Solids::Creep::createCreepBGRa(), MaterialLib::Fracture::Permeability::createCubicLaw(), MaterialPropertyLib::createCurve(), ParameterLib::createCurveScaledParameter(), ProcessLib::createDirichletBoundaryCondition(), ProcessLib::createDirichletBoundaryConditionWithinTimeInterval(), MaterialPropertyLib::createDupuitPermeability(), MaterialLib::Solids::Ehlers::createEhlers(), NumLib::createEvolutionaryPIDcontroller(), MaterialPropertyLib::createExponential(), NumLib::createFixedTimeStepping(), MaterialLib::Fluid::createFluidDensityModel(), ParameterLib::createFunctionParameter(), ParameterLib::createGroupBasedParameter(), ProcessLib::createHCNonAdvectiveFreeComponentFlowBoundaryCondition(), ProcessLib::HeatConduction::createHeatConductionProcess(), ProcessLib::HeatTransportBHE::createHeatTransportBHEProcess(), ProcessLib::HT::createHTProcess(), ProcessLib::LIE::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), MaterialPropertyLib::createIdealGasLaw(), NumLib::createIterationNumberBasedTimeStepping(), MaterialPropertyLib::createKozenyCarmanModel(), MaterialPropertyLib::createLinear(), MaterialLib::Fluid::createLinearConcentrationAndPressureDependentDensity(), MaterialLib::Fluid::createLinearConcentrationDependentDensity(), MaterialLib::Fracture::createLinearElasticIsotropic(), MaterialLib::Solids::createLinearElasticIsotropic(), MaterialLib::Solids::createLinearElasticOrthotropic(), MaterialLib::Fluid::createLinearPressureDependentViscosity(), MaterialPropertyLib::createLinearSaturationSwellingStress(), MaterialLib::Fluid::createLinearTemperatureDependentDensity(), MaterialLib::Fluid::createLiquidDensity(), ProcessLib::LiquidFlow::createLiquidFlowProcess(), MaterialLib::Solids::Lubby2::createLubby2(), ParameterLib::createMeshElementParameter(), ParameterLib::createMeshNodeParameter(), MaterialLib::Solids::MFront::createMFront(), ProcessLib::createNeumannBoundaryCondition(), ProcessLib::createNodalSourceTerm(), MaterialLib::PorousMedium::createNonWettingPhaseBrooksCoreyOilGas(), MaterialLib::PorousMedium::createNonWettingPhaseVanGenuchten(), ProcessLib::NormalTractionBoundaryCondition::createNormalTractionBoundaryCondition(), MaterialPropertyLib::createParameterProperty(), MaterialPropertyLib::createPermeabilityMohrCoulombFailureIndexModel(), MaterialPropertyLib::createPermeabilityOrthotropicPowerLaw(), ProcessLib::createPhaseFieldIrreversibleDamageOracleBoundaryCondition(), ProcessLib::PhaseField::createPhaseFieldProcess(), MaterialPropertyLib::createPorosityFromMassBalance(), ProcessLib::createPrimaryVariableConstraintDirichletBoundaryCondition(), ProcessLib::createPythonBoundaryCondition(), ProcessLib::createPythonSourceTerm(), MaterialLib::PorousMedium::createRelativePermeabilityModel(), MaterialPropertyLib::createRelPermBrooksCorey(), MaterialPropertyLib::createRelPermLiakopoulos(), MaterialPropertyLib::createRelPermUdell(), MaterialPropertyLib::createRelPermVanGenuchten(), ProcessLib::RichardsComponentTransport::createRichardsComponentTransportProcess(), ProcessLib::RichardsFlow::createRichardsFlowProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::createRobinBoundaryCondition(), MaterialPropertyLib::createSaturationBrooksCorey(), MaterialPropertyLib::createSaturationDependentHeatConduction(), MaterialPropertyLib::createSaturationDependentSwelling(), MaterialPropertyLib::createSaturationLiakopoulos(), MaterialPropertyLib::createSaturationVanGenuchten(), ProcessLib::SmallDeformationNonlocal::createSmallDeformationNonlocalProcess(), ProcessLib::LIE::SmallDeformation::createSmallDeformationProcess(), ProcessLib::SmallDeformation::createSmallDeformationProcess(), ProcessLib::createSolutionDependentDirichletBoundaryCondition(), ProcessLib::SteadyStateDiffusion::createSteadyStateDiffusion(), MaterialPropertyLib::createStrainDependentPermeability(), MaterialLib::Fluid::createTemperatureDependentViscosity(), ProcessLib::TES::createTESProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::createThermalTwoPhaseFlowWithPPProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanicalPhaseField::createThermoMechanicalPhaseFieldProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), ParameterLib::createTimeDependentHeterogeneousParameter(), MaterialPropertyLib::createTransportPorosityFromMassBalance(), ProcessLib::TwoPhaseFlowWithPP::createTwoPhaseFlowWithPPProcess(), ProcessLib::TwoPhaseFlowWithPrho::createTwoPhaseFlowWithPrhoProcess(), MaterialLib::PorousMedium::createVanGenuchten(), ProcessLib::createVariableDependentNeumannBoundaryCondition(), MaterialLib::Fluid::createViscosityModel(), ProcessLib::createVolumetricSourceTerm(), MaterialLib::PorousMedium::createWettingPhaseBrooksCoreyOilGas(), and MaterialLib::PorousMedium::createWettingPhaseVanGenuchten().
|
private |
Checks if key
complies with the rules [a-z0-9_].
Definition at line 276 of file ConfigTree.cpp.
References error(), key_chars, and key_chars_start.
Referenced by checkUnique(), checkUniqueAttr(), ConfigTree(), and peekConfigParameter().
|
private |
Asserts that the key
has not been read yet.
Definition at line 308 of file ConfigTree.cpp.
References _visited_params, checkKeyname(), and error().
Referenced by getConfigParameterList(), getConfigParameterOptional(), getConfigSubtreeList(), getConfigSubtreeOptional(), ignoreConfigParameter(), and ignoreConfigParameterAll().
|
private |
Asserts that the attribute attr
has not been read yet.
Definition at line 317 of file ConfigTree.cpp.
References _visited_params, checkKeyname(), and error().
Referenced by getConfigAttributeOptional(), and ignoreConfigAttribute().
|
private |
Called if an error occurs. Will call the error callback.
This method only acts as a helper method and throws std::runtime_error.
Definition at line 218 of file ConfigTree.cpp.
References _filename, _onerror, _path, and OGS_FATAL.
Referenced by checkConfigParameter(), checkKeyname(), checkUnique(), checkUniqueAttr(), getConfigAttribute(), getConfigAttributeOptional(), getConfigParameter(), getConfigParameterOptional(), getConfigParameterOptionalImpl(), getConfigSubtree(), getValue(), joinPaths(), markVisited(), BaseLib::ConfigTree::ParameterIterator::operator*(), and peekConfigParameter().
T BaseLib::ConfigTree::getConfigAttribute | ( | std::string const & | attr | ) | const |
Get XML attribute attr
of type T
for the current parameter.
attr
must not have been read before from the current parameter. Definition at line 194 of file ConfigTree-impl.h.
References error().
Referenced by MaterialLib::PorousMedium::createPorousMediaProperties().
T BaseLib::ConfigTree::getConfigAttribute | ( | std::string const & | attr, |
T const & | default_value | ||
) | const |
Get XML attribute attr
of type T
for the current parameter or the default_value
.
This method has a similar behaviour as getConfigAttribute(std::string const&) except the default_value
is returned if the attribute has not been found.
attr
must not have been read before from the current parameter. Definition at line 206 of file ConfigTree-impl.h.
boost::optional< T > BaseLib::ConfigTree::getConfigAttributeOptional | ( | std::string const & | attr | ) | const |
Get XML attribute attr
of type T
for the current parameter if present.
attr
must not have been read before from the current parameter. Definition at line 219 of file ConfigTree-impl.h.
References _tree, ATTR, checkUniqueAttr(), error(), and shortString().
Referenced by MaterialLib::TwoPhaseFlowWithPP::createTwoPhaseFlowMaterialProperties(), ProcessLib::TwoPhaseFlowWithPrho::createTwoPhaseFlowPrhoMaterialProperties(), and anonymous_namespace{ProjectData.cpp}::readSingleMesh().
T BaseLib::ConfigTree::getConfigParameter | ( | std::string const & | param | ) | const |
Get parameter param
of type T
from the configuration tree.
param
must not have been read before from this ConfigTree. Definition at line 40 of file ConfigTree-impl.h.
References error().
Referenced by ChemistryLib::PhreeqcIOData::createAqueousSolution(), ChemistryLib::PhreeqcKernelData::createAqueousSolution(), MaterialPropertyLib::createBishopsPowerLaw(), MaterialPropertyLib::createBishopsSaturationCutoff(), ProcessLib::HeatTransportBHE::BHE::createBoreholeGeometry(), MaterialLib::PorousMedium::createBrooksCorey(), MaterialPropertyLib::createCapillaryPressureRegularizedVanGenuchten(), MaterialPropertyLib::createCapillaryPressureVanGenuchten(), ChemistryLib::createChemicalSolverInterface< ChemicalSolver::Phreeqc >(), MaterialLib::Fracture::CohesiveZoneModeI::createCohesiveZoneModeI(), ProcessLib::createCompareJacobiansJacobianAssembler(), anonymous_namespace{CreateComponent.cpp}::createComponent(), ProcessLib::ComponentTransport::createComponentTransportProcess(), MaterialPropertyLib::createConstant(), ParameterLib::createConstantParameter(), MaterialLib::Fracture::Permeability::createConstantPermeability(), ProcessLib::createConstraintDirichletBoundaryCondition(), NumLib::createConvergenceCriterionDeltaX(), NumLib::createConvergenceCriterionPerComponentDeltaX(), NumLib::createConvergenceCriterionPerComponentResidual(), NumLib::createConvergenceCriterionResidual(), MaterialLib::Fracture::createCoulomb(), MaterialPropertyLib::createCurve(), ParameterLib::createCurveScaledParameter(), ProcessLib::createDeactivatedSubdomain(), ProcessLib::createDirichletBoundaryCondition(), ProcessLib::createDirichletBoundaryConditionWithinTimeInterval(), MaterialPropertyLib::createDupuitPermeability(), MaterialLib::Solids::Ehlers::createEhlers(), NumLib::createEvolutionaryPIDcontroller(), MaterialPropertyLib::createExponential(), NumLib::createFixedTimeStepping(), ProcessLib::HeatTransportBHE::BHE::createFlowAndTemperatureControl(), MaterialLib::Fluid::createFluidDensityModel(), MaterialLib::Fluid::createFluidThermalConductivityModel(), ParameterLib::createGroupBasedParameter(), ProcessLib::HeatTransportBHE::BHE::createGroutParameters(), ProcessLib::createHCNonAdvectiveFreeComponentFlowBoundaryCondition(), ProcessLib::HeatConduction::createHeatConductionProcess(), ProcessLib::HeatTransportBHE::createHeatTransportBHEProcess(), ProcessLib::HT::createHTProcess(), ProcessLib::LIE::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), NumLib::createIterationNumberBasedTimeStepping(), ChemistryLib::PhreeqcIOData::createKnobs(), MaterialPropertyLib::createKozenyCarmanModel(), MaterialPropertyLib::createLinear(), MaterialLib::Fluid::createLinearConcentrationAndPressureDependentDensity(), MaterialLib::Fluid::createLinearConcentrationDependentDensity(), MaterialLib::Fracture::createLinearElasticIsotropic(), MaterialLib::Fluid::createLinearPressureDependentViscosity(), MaterialPropertyLib::createLinearSaturationSwellingStress(), MaterialLib::Fluid::createLinearTemperatureDependentDensity(), MaterialLib::Fluid::createLiquidDensity(), ProcessLib::LiquidFlow::createLiquidFlowProcess(), ParameterLib::createMeshElementParameter(), ParameterLib::createMeshNodeParameter(), MaterialLib::Solids::MFront::createMFront(), ProcessLib::createNeumannBoundaryCondition(), MaterialLib::createNewtonRaphsonSolverParameters(), ProcessLib::createNodalSourceTerm(), NumLib::createNonlinearSolver(), MaterialLib::PorousMedium::createNonWettingPhaseBrooksCoreyOilGas(), MaterialLib::PorousMedium::createNonWettingPhaseVanGenuchten(), ProcessLib::NormalTractionBoundaryCondition::createNormalTractionBoundaryCondition(), ProcessLib::createOutput(), ParameterLib::createParameter(), MaterialPropertyLib::createParameterProperty(), MaterialLib::PorousMedium::createPermeabilityModel(), MaterialPropertyLib::createPermeabilityMohrCoulombFailureIndexModel(), MaterialPropertyLib::createPermeabilityOrthotropicPowerLaw(), anonymous_namespace{CreatePhase.cpp}::createPhase(), ProcessLib::PhaseField::createPhaseFieldProcess(), MathLib::createPiecewiseLinearCurve(), ProcessLib::HeatTransportBHE::BHE::createPipe(), MaterialPropertyLib::createPorosityFromMassBalance(), MaterialLib::PorousMedium::createPorosityModel(), ProcessLib::createPrimaryVariableConstraintDirichletBoundaryCondition(), ProcessLib::createPythonBoundaryCondition(), ProcessLib::createPythonSourceTerm(), ProcessLib::HeatTransportBHE::BHE::createRefrigerantProperties(), MaterialPropertyLib::createRelPermBrooksCorey(), MaterialPropertyLib::createRelPermUdell(), MaterialPropertyLib::createRelPermVanGenuchten(), ProcessLib::RichardsComponentTransport::createRichardsComponentTransportProcess(), ProcessLib::RichardsFlow::createRichardsFlowProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::createRobinBoundaryCondition(), MaterialPropertyLib::createSaturationBrooksCorey(), MaterialPropertyLib::createSaturationDependentHeatConduction(), MaterialPropertyLib::createSaturationDependentSwelling(), MaterialPropertyLib::createSaturationVanGenuchten(), ProcessLib::SmallDeformationNonlocal::createSmallDeformationNonlocalProcess(), ProcessLib::LIE::SmallDeformation::createSmallDeformationProcess(), ProcessLib::SmallDeformation::createSmallDeformationProcess(), ProcessLib::createSolutionDependentDirichletBoundaryCondition(), MaterialLib::Fluid::createSpecificFluidHeatCapacityModel(), MaterialLib::PorousMedium::createStorageModel(), MaterialPropertyLib::createStrainDependentPermeability(), ProcessLib::SurfaceFluxData::createSurfaceFluxData(), MaterialLib::Fluid::createTemperatureDependentViscosity(), ProcessLib::ThermalTwoPhaseFlowWithPP::createThermalTwoPhaseFlowWithPPProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanicalPhaseField::createThermoMechanicalPhaseFieldProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), NumLib::createTimeDiscretization(), BaseLib::createTimeInterval(), MaterialPropertyLib::createTransportPorosityFromMassBalance(), ProcessLib::TwoPhaseFlowWithPP::createTwoPhaseFlowWithPPProcess(), ProcessLib::TwoPhaseFlowWithPrho::createTwoPhaseFlowWithPrhoProcess(), MaterialLib::PorousMedium::createVanGenuchten(), ProcessLib::createVariableDependentNeumannBoundaryCondition(), MaterialLib::Fluid::createViscosityModel(), ProcessLib::createVolumetricSourceTerm(), MaterialLib::PorousMedium::createWettingPhaseBrooksCoreyOilGas(), MaterialLib::PorousMedium::createWettingPhaseVanGenuchten(), anonymous_namespace{ProcessVariable.cpp}::findMeshInConfig(), ParameterLib::findParameter(), ProcessLib::findProcessVariable(), Adsorption::Reaction::newInstance(), ProcessLib::HeatTransportBHE::BHE::parseBHE1PTypeConfig(), ProcessLib::HeatTransportBHE::BHE::parseBHECoaxialConfig(), ProcessLib::HeatTransportBHE::BHE::parseBHEUTypeConfig(), and anonymous_namespace{ProjectData.cpp}::readMeshes().
T BaseLib::ConfigTree::getConfigParameter | ( | std::string const & | param, |
T const & | default_value | ||
) | const |
Get parameter param
of type T
from the configuration tree or the default_value
.
This method has a similar behaviour as getConfigParameter(std::string const&) except the default_value
is returned if the attribute has not been found.
param
must not have been read before from this ConfigTree. Definition at line 53 of file ConfigTree-impl.h.
ConfigTree BaseLib::ConfigTree::getConfigParameter | ( | std::string const & | root | ) | const |
Get parameter param
from the configuration tree.
param
must not have been read before from this ConfigTree. Definition at line 112 of file ConfigTree.cpp.
References error(), and getConfigSubtree().
Range< ConfigTree::ValueIterator< T > > BaseLib::ConfigTree::getConfigParameterList | ( | std::string const & | param | ) | const |
Fetches all parameters with name param
from the current level of the tree.
The return value is suitable to be used with range-base for-loops.
param
must not have been read before from this ConfigTree. Definition at line 117 of file ConfigTree-impl.h.
References _tree, checkUnique(), and TAG.
Referenced by ProcessLib::HeatTransportBHE::createHeatTransportBHEProcess(), ProcessLib::LIE::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::LIE::SmallDeformation::createSmallDeformationProcess(), ProcessLib::findProcessVariables(), and GeoLib::IO::BoostXmlGmlInterface::readPoints().
Range< ConfigTree::ParameterIterator > BaseLib::ConfigTree::getConfigParameterList | ( | std::string const & | param | ) | const |
Fetches all parameters with name param
from the current level of the tree.
The return value is suitable to be used with range-base for-loops.
param
must not have been read before from this ConfigTree. Definition at line 136 of file ConfigTree.cpp.
References _tree, checkUnique(), markVisited(), and TAG.
boost::optional< T > BaseLib::ConfigTree::getConfigParameterOptional | ( | std::string const & | param | ) | const |
Get parameter param
of type T
from the configuration tree if present
This method has a similar behaviour as getConfigParameter(std::string const&) except no errors are raised. Rather it can be told from the return value if the parameter could be read.
param
must not have been read before from this ConfigTree. Definition at line 65 of file ConfigTree-impl.h.
References checkUnique(), and getConfigParameterOptionalImpl().
Referenced by MaterialLib::PorousMedium::createBrooksCorey(), ProcessLib::createCentralDifferencesJacobianAssembler(), ChemistryLib::createChargeBalance(), ParameterLib::createConstantParameter(), NumLib::createConvergenceCriterionDeltaX(), NumLib::createConvergenceCriterionPerComponentDeltaX(), NumLib::createConvergenceCriterionPerComponentResidual(), NumLib::createConvergenceCriterionResidual(), ProcessLib::HT::createHTProcess(), ProcessLib::LIE::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), MaterialLib::Solids::MFront::createMFront(), ProcessLib::PhaseField::createPhaseFieldProcess(), ProcessLib::RichardsComponentTransport::createRichardsComponentTransportProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), MaterialLib::PorousMedium::createVanGenuchten(), MathLib::ODE::CVodeSolverImpl::CVodeSolverImpl(), anonymous_namespace{ProcessVariable.cpp}::findMeshInConfig(), ParameterLib::findOptionalTagParameter(), MathLib::LisOption::LisOption(), ProjectData::ProjectData(), and ProcessLib::TES::TESProcess::TESProcess().
boost::optional< ConfigTree > BaseLib::ConfigTree::getConfigParameterOptional | ( | std::string const & | root | ) | const |
Get parameter param
from the configuration tree if present.
param
must not have been read before from this ConfigTree. Definition at line 124 of file ConfigTree.cpp.
References error(), and getConfigSubtreeOptional().
|
private |
Implementation of reading a vector of values of type T.
Definition at line 86 of file ConfigTree-impl.h.
References error(), getConfigSubtreeOptional(), and shortString().
|
private |
Default implementation of reading a value of type T.
Definition at line 74 of file ConfigTree-impl.h.
References getConfigSubtreeOptional().
Referenced by getConfigParameterOptional().
ConfigTree BaseLib::ConfigTree::getConfigSubtree | ( | std::string const & | root | ) | const |
Get the subtree rooted at root
If root
is not found error() is called.
root
must not have been read before from this ConfigTree. Definition at line 150 of file ConfigTree.cpp.
References error(), and getConfigSubtreeOptional().
Referenced by MaterialLib::PorousMedium::createCapillaryPressureModel(), ChemistryLib::PhreeqcIOData::createChemicalSystem(), ProcessLib::createCompareJacobiansJacobianAssembler(), ProcessLib::ComponentTransport::createComponentTransportProcess(), MaterialLib::Fracture::createCoulomb(), MaterialLib::Solids::Creep::createCreepBGRa(), MaterialLib::Solids::Ehlers::createEhlers(), MaterialPropertyLib::createExponential(), NumLib::createFixedTimeStepping(), MaterialLib::Fluid::createFluidProperties(), ProcessLib::HeatConduction::createHeatConductionProcess(), ProcessLib::HeatTransportBHE::createHeatTransportBHEProcess(), ProcessLib::HT::createHTProcess(), ProcessLib::LIE::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::HydroMechanics::createHydroMechanicsProcess(), ChemistryLib::PhreeqcKernelData::createInitialAqueousSolution(), ProcessLib::LiquidFlow::createLiquidFlowProcess(), MaterialLib::Solids::Lubby2::createLubby2(), MaterialLib::Solids::MFront::createMFront(), ProcessLib::createOutput(), ProcessLib::PhaseField::createPhaseFieldProcess(), MaterialLib::PorousMedium::createPorousMediaProperties(), MaterialLib::PorousMedium::createRelativePermeabilityModel(), ProcessLib::RichardsComponentTransport::createRichardsComponentTransportProcess(), ProcessLib::RichardsFlow::createRichardsFlowProcess(), ProcessLib::RichardsMechanics::createRichardsMechanicsProcess(), ProcessLib::SmallDeformationNonlocal::createSmallDeformationNonlocalProcess(), ProcessLib::LIE::SmallDeformation::createSmallDeformationProcess(), ProcessLib::SmallDeformation::createSmallDeformationProcess(), ChemistryLib::PhreeqcIOData::createSolutionComponents(), ProcessLib::SteadyStateDiffusion::createSteadyStateDiffusion(), ProcessLib::TES::createTESProcess(), ProcessLib::ThermalTwoPhaseFlowWithPP::createThermalTwoPhaseFlowWithPPProcess(), ProcessLib::ThermoHydroMechanics::createThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanicalPhaseField::createThermoMechanicalPhaseFieldProcess(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), ParameterLib::createTimeDependentHeterogeneousParameter(), BaseLib::createTimeInterval(), ProcessLib::createTimeLoop(), MaterialLib::TwoPhaseFlowWithPP::createTwoPhaseFlowMaterialProperties(), ProcessLib::TwoPhaseFlowWithPrho::createTwoPhaseFlowPrhoMaterialProperties(), ProcessLib::TwoPhaseFlowWithPP::createTwoPhaseFlowWithPPProcess(), ProcessLib::TwoPhaseFlowWithPrho::createTwoPhaseFlowWithPrhoProcess(), getConfigParameter(), ProcessLib::HeatTransportBHE::BHE::parseBHE1PTypeConfig(), ProcessLib::HeatTransportBHE::BHE::parseBHECoaxialConfig(), ProcessLib::HeatTransportBHE::BHE::parseBHEUTypeConfig(), ProjectData::ProjectData(), and ProcessLib::TES::TESProcess::TESProcess().
Range< ConfigTree::SubtreeIterator > BaseLib::ConfigTree::getConfigSubtreeList | ( | std::string const & | root | ) | const |
Get all subtrees that have a root root
from the current level of the tree.
The return value is suitable to be used with range-base for-loops.
root
must not have been read before from this ConfigTree. Definition at line 174 of file ConfigTree.cpp.
References _tree, checkUnique(), markVisited(), and TAG.
Referenced by MaterialLib::Solids::createConstitutiveRelations(), NumLib::createFixedTimeStepping(), ParameterLib::createFunctionParameter(), ParameterLib::createGroupBasedParameter(), MaterialPropertyLib::createLinear(), ProcessLib::createPerProcessData(), ProcessLib::RichardsComponentTransport::createPorousMediaProperties(), ProcessLib::LIE::SmallDeformation::createSmallDeformationProcess(), InSituLib::Initialize(), ProjectData::parseLinearSolvers(), ProjectData::parseNonlinearSolvers(), ProjectData::parseParameters(), ProjectData::parseProcesses(), ProjectData::parseProcessVariables(), GeoLib::IO::BoostXmlGmlInterface::readPolylines(), GeoLib::IO::BoostXmlGmlInterface::readSurfaces(), and ApplicationsLib::TestDefinition::TestDefinition().
boost::optional< ConfigTree > BaseLib::ConfigTree::getConfigSubtreeOptional | ( | std::string const & | root | ) | const |
Get the subtree rooted at root
if present
root
must not have been read before from this ConfigTree. Definition at line 160 of file ConfigTree.cpp.
References _tree, checkUnique(), ConfigTree(), markVisited(), and TAG.
Referenced by ChemistryLib::PhreeqcIOData::createChemicalSystem(), anonymous_namespace{CreateComponent.cpp}::createComponent(), ProcessLib::ComponentTransport::createComponentTransportProcess(), ProcessLib::createDeactivatedSubdomains(), MaterialLib::Solids::Ehlers::createEhlers(), MaterialLib::Fluid::createFluidProperties(), ProcessLib::HT::createHTProcess(), ProcessLib::LIE::HydroMechanics::createHydroMechanicsProcess(), ProcessLib::LiquidFlow::createLiquidFlowProcess(), MaterialPropertyLib::createMedium(), ProcessLib::createOutput(), anonymous_namespace{CreatePhase.cpp}::createPhase(), MeshGeoToolsLib::createSearchLengthAlgorithm(), ProcessLib::createSecondaryVariables(), ProcessLib::SteadyStateDiffusion::createSteadyStateDiffusion(), ProcessLib::createTimeLoop(), getConfigParameterOptional(), getConfigParameterOptionalImpl(), getConfigSubtree(), MathLib::PETScLinearSolver::PETScLinearSolver(), ProcessLib::ProcessVariable::ProcessVariable(), ProjectData::ProjectData(), anonymous_namespace{ProjectData.cpp}::readMeshes(), and MathLib::EigenLinearSolver::setOption().
|
inline |
Used to get the project file name.
Definition at line 275 of file ConfigTree.h.
References _filename.
T BaseLib::ConfigTree::getValue |
Get the plain data contained in the current level of the tree.
T
Definition at line 176 of file ConfigTree-impl.h.
References _have_read_data, _tree, error(), and shortString().
Referenced by ChemistryLib::PhreeqcKernelData::createInitialAqueousSolution(), ChemistryLib::PhreeqcIOData::createSolutionComponents(), and anonymous_namespace{ProjectData.cpp}::readSingleMesh().
|
private |
Checks if this tree has any children.
Definition at line 371 of file ConfigTree.cpp.
References _tree.
void BaseLib::ConfigTree::ignoreConfigAttribute | ( | std::string const & | attr | ) | const |
Tell this instance to ignore the XML attribute attr
.
This method is used to avoid warning messages.
attr
must not have been read before from this ConfigTree. Definition at line 195 of file ConfigTree.cpp.
References _tree, ATTR, checkUniqueAttr(), and markVisited().
void BaseLib::ConfigTree::ignoreConfigParameter | ( | std::string const & | param | ) | const |
Tell this instance to ignore parameter param
.
This method is used to avoid warning messages.
param
must not have been read before from this ConfigTree. Definition at line 187 of file ConfigTree.cpp.
References _tree, checkUnique(), markVisited(), and TAG.
Referenced by NumLib::createTimeStepper(), and MathLib::ignoreOtherLinearSolvers().
void BaseLib::ConfigTree::ignoreConfigParameterAll | ( | std::string const & | param | ) | const |
Tell this instance to ignore all parameters param
on the current level of the tree.
This method is used to avoid warning messages.
param
must not have been read before from this ConfigTree. Definition at line 206 of file ConfigTree.cpp.
References _tree, checkUnique(), markVisited(), and TAG.
|
private |
Used to generate the path of a subtree.
Definition at line 293 of file ConfigTree.cpp.
References error(), and pathseparator.
|
private |
Keeps track of the key key
and its value type ConfigTree.
This method asserts that a key is read always with the same type.
param
peek_only if true, do not change the read-count of the given key.
Definition at line 349 of file ConfigTree.cpp.
|
private |
Keeps track of the key key
and its value type T
.
This method asserts that a key is read always with the same type.
param
peek_only if true, do not change the read-count of the given key.
Definition at line 242 of file ConfigTree-impl.h.
References _visited_params, and error().
Referenced by getConfigParameterList(), getConfigSubtreeList(), getConfigSubtreeOptional(), ignoreConfigAttribute(), ignoreConfigParameter(), ignoreConfigParameterAll(), BaseLib::ConfigTree::SubtreeIterator::operator*(), and BaseLib::ConfigTree::ValueIterator< ValueType >::operator*().
|
private |
Used in the destructor to compute the difference between number of reads of a parameter and the number of times it exists in the ConfigTree
Definition at line 356 of file ConfigTree.cpp.
References _visited_params.
Referenced by checkAndInvalidate().
|
static |
Default error callback function Will throw std::runtime_error
Definition at line 232 of file ConfigTree.cpp.
References OGS_FATAL.
|
static |
Default warning callback function Will print a warning message
Definition at line 239 of file ConfigTree.cpp.
References WARN().
ConfigTree & BaseLib::ConfigTree::operator= | ( | ConfigTree && | other | ) |
After being moved from, other
is in an undefined state and must not be used anymore!
Definition at line 94 of file ConfigTree.cpp.
References _filename, _have_read_data, _onerror, _onwarning, _path, _tree, _visited_params, and checkAndInvalidate().
|
delete |
copying is not compatible with the semantics of this class
T BaseLib::ConfigTree::peekConfigParameter | ( | std::string const & | param | ) | const |
Peek at a parameter param
of type T
from the configuration tree.
This method is an exception to the single-read rule. It is meant to be used to tell from a ConfigTree instance where to pass that instance on for further processing.
But in order that the requested parameter counts as "completely parsed", it has to be read through some other method, too.
Return value and error behaviour are the same as for getConfigParameter<T>(std::string const&).
Definition at line 131 of file ConfigTree-impl.h.
References _tree, checkKeyname(), error(), and shortString().
Referenced by MaterialPropertyLib::createAverageMolarMass(), MaterialPropertyLib::createBishopsPowerLaw(), MaterialPropertyLib::createBishopsSaturationCutoff(), ProcessLib::createBoundaryCondition(), MaterialLib::PorousMedium::createCapillaryPressureModel(), MaterialPropertyLib::createCapillaryPressureVanGenuchten(), MaterialPropertyLib::createConstant(), MaterialLib::Solids::createConstitutiveRelation(), NumLib::createConvergenceCriterion(), MaterialPropertyLib::createCurve(), ProcessLib::createDeactivatedSubdomain(), ProcessLib::createDirichletBoundaryConditionWithinTimeInterval(), MaterialPropertyLib::createDupuitPermeability(), MaterialPropertyLib::createExponential(), MaterialLib::Fluid::createFluidDensityModel(), MaterialPropertyLib::createIdealGasLaw(), MaterialPropertyLib::createLinear(), MaterialPropertyLib::createLinearSaturationSwellingStress(), ParameterLib::createParameter(), MaterialPropertyLib::createParameterProperty(), MaterialLib::Fracture::Permeability::createPermeabilityModel(), MaterialPropertyLib::createPermeabilityMohrCoulombFailureIndexModel(), MaterialPropertyLib::createPermeabilityOrthotropicPowerLaw(), MaterialPropertyLib::createPorosityFromMassBalance(), anonymous_namespace{CreateProperty.cpp}::createProperty(), MaterialLib::PorousMedium::createRelativePermeabilityModel(), MaterialPropertyLib::createRelPermBrooksCorey(), MaterialPropertyLib::createRelPermLiakopoulos(), MaterialPropertyLib::createRelPermUdell(), MaterialPropertyLib::createRelPermVanGenuchten(), MaterialPropertyLib::createSaturationBrooksCorey(), MaterialPropertyLib::createSaturationDependentHeatConduction(), MaterialPropertyLib::createSaturationDependentSwelling(), MaterialPropertyLib::createSaturationLiakopoulos(), MaterialPropertyLib::createSaturationVanGenuchten(), ProcessLib::LIE::SmallDeformation::createSmallDeformationProcess(), ProcessLib::createSourceTerm(), MaterialPropertyLib::createStrainDependentPermeability(), ProcessLib::ThermoMechanics::createThermoMechanicsProcess(), NumLib::createTimeStepper(), MaterialPropertyLib::createTransportPorosityFromMassBalance(), MaterialLib::Fluid::createViscosityModel(), and ProcessLib::createVolumetricSourceTerm().
|
staticprivate |
returns a short string at suitable for error/warning messages
Definition at line 263 of file ConfigTree.cpp.
Referenced by checkAndInvalidate(), getConfigAttributeOptional(), getConfigParameterOptionalImpl(), getValue(), and peekConfigParameter().
|
private |
Called for printing warning messages. Will call the warning callback. This method only acts as a helper method.
Definition at line 226 of file ConfigTree.cpp.
References _filename, _onwarning, and _path.
Referenced by checkAndInvalidate().
|
friend |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 453 of file ConfigTree.cpp.
|
friend |
Check if conf
has been read entirely and invalidate it.
This method can savely be called on nullptr's
.
Definition at line 458 of file ConfigTree.cpp.
|
friend |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 466 of file ConfigTree.cpp.
|
private |
The path of the file from which this tree has been read.
Definition at line 611 of file ConfigTree.h.
Referenced by error(), getProjectFileName(), operator=(), and warning().
|
mutableprivate |
Indicates if the plain data contained in this tree has already been read.
Definition at line 626 of file ConfigTree.h.
Referenced by checkAndInvalidate(), getValue(), and operator=().
|
private |
Custom error callback.
Definition at line 628 of file ConfigTree.h.
Referenced by ConfigTree(), error(), and operator=().
|
private |
Custom warning callback.
Definition at line 629 of file ConfigTree.h.
Referenced by ConfigTree(), operator=(), and warning().
|
private |
A path printed in error/warning messages.
Definition at line 608 of file ConfigTree.h.
Referenced by error(), operator=(), and warning().
|
private |
The wrapped tree.
Definition at line 605 of file ConfigTree.h.
Referenced by checkAndInvalidate(), getConfigAttributeOptional(), getConfigParameterList(), getConfigSubtreeList(), getConfigSubtreeOptional(), getValue(), hasChildren(), ignoreConfigAttribute(), ignoreConfigParameter(), ignoreConfigParameterAll(), operator=(), and peekConfigParameter().
A map KeyType -> (count, type) keeping track which parameters have been read how often and which datatype they have.
This member will be written to when reading from the config tree. Therefore it has to be mutable in order to be able to read from constant instances, e.g., those passed as constant references to temporaries.
Definition at line 623 of file ConfigTree.h.
Referenced by checkAndInvalidate(), checkUnique(), checkUniqueAttr(), markVisited(), markVisitedDecrement(), and operator=().
|
staticprivate |
Set of allowed characters in a key name.
Definition at line 638 of file ConfigTree.h.
Referenced by checkKeyname().
|
staticprivate |
Set of allowed characters as the first letter of a key name.
Definition at line 635 of file ConfigTree.h.
Referenced by checkKeyname().
|
staticprivate |
Character separating two path components.
Definition at line 632 of file ConfigTree.h.
Referenced by joinPaths().