Library: Util
Package: Configuration
Header: Poco/Util/LayeredConfiguration.h
Description
A LayeredConfiguration consists of a number of AbstractConfigurations.
When reading a configuration property in a LayeredConfiguration, all added configurations are searched, in order of their priority. Configurations with lower priority values have precedence.
When setting a property, the property is always written to the first writeable configuration (see addWriteable()). If no writeable configuration has been added to the LayeredConfiguration, and an attempt is made to set a property, a RuntimeException is thrown.
Every configuration added to the LayeredConfiguration has a priority value. The priority determines the position where the configuration is inserted, with lower priority values coming before higher priority values.
If no priority is specified, a priority of 0 is assumed.
Inheritance
Direct Base Classes: AbstractConfiguration
All Base Classes: Poco::RefCountedObject, AbstractConfiguration
Member Summary
Member Functions: add, addWriteable, enumerate, find, getRaw, highest, insert, lowest, removeConfiguration, removeRaw, setRaw
Inherited Functions: createLocalView, createView, duplicate, enableEvents, enumerate, eventsEnabled, expand, getBool, getDouble, getInt, getInt16, getInt32, getInt64, getRaw, getRawString, getString, getUInt, getUInt16, getUInt32, getUInt64, has, hasOption, hasProperty, keys, parseBool, parseInt, parseInt16, parseInt64, parseUInt, parseUInt16, parseUInt64, referenceCount, release, remove, removeRaw, setBool, setDouble, setInt, setInt16, setInt32, setInt64, setRaw, setRawWithEvent, setString, setUInt, setUInt16, setUInt32, setUInt64
Nested Classes
struct ConfigItem
Types Aliases
Ptr
using Ptr = Poco::AutoPtr < LayeredConfiguration >;
Constructors
LayeredConfiguration
Creates the LayeredConfiguration.
Destructor
~LayeredConfiguration
Member Functions
add
void add(
AbstractConfiguration::Ptr pConfig
);
Adds a read-only configuration to the back of the LayeredConfiguration. The LayeredConfiguration takes shared ownership of the given configuration.
add
void add(
AbstractConfiguration::Ptr pConfig,
const std::string & label
);
Adds a read-only configuration with the given label to the back of the LayeredConfiguration. The LayeredConfiguration takes shared ownership of the given configuration.
add
void add(
AbstractConfiguration::Ptr pConfig,
int priority
);
Adds a read-only configuration to the LayeredConfiguration. The LayeredConfiguration takes shared ownership of the given configuration.
add
void add(
AbstractConfiguration::Ptr pConfig,
const std::string & label,
int priority
);
Adds a read-only configuration with the given label to the LayeredConfiguration. The LayeredConfiguration takes shared ownership of the given configuration.
add
void add(
AbstractConfiguration::Ptr pConfig,
int priority,
bool writeable
);
Adds a configuration to the LayeredConfiguration. The LayeredConfiguration takes shared ownership of the given configuration.
add
void add(
AbstractConfiguration::Ptr pConfig,
const std::string & label,
int priority,
bool writeable
);
Adds a configuration with the given label to the LayeredConfiguration. The LayeredConfiguration takes shared ownership of the given configuration.
addWriteable
void addWriteable(
AbstractConfiguration::Ptr pConfig,
int priority
);
Adds a writeable configuration to the LayeredConfiguration. The LayeredConfiguration does not take ownership of the given configuration. In other words, the configuration's reference count is incremented.
find
AbstractConfiguration::Ptr find(
const std::string & label
) const;
Finds and returns the configuration with the given label.
Returns null if no such configuration can be found.
removeConfiguration
void removeConfiguration(
AbstractConfiguration::Ptr pConfig
);
Removes the given configuration from the LayeredConfiguration.
Does nothing if the given configuration is not part of the LayeredConfiguration.
enumerate
void enumerate(
const std::string & key,
Keys & range
) const;
getRaw
bool getRaw(
const std::string & key,
std::string & value
) const;
highest
int highest() const;
insert
void insert(
const ConfigItem & item
);
lowest
int lowest() const;
removeRaw
void removeRaw(
const std::string & key
);
setRaw
void setRaw(
const std::string & key,
const std::string & value
);