Library: Util
Package: Configuration
Header: Poco/Util/LayeredConfiguration.h
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.
Direct Base Classes: AbstractConfiguration
All Base Classes: Poco::RefCountedObject, AbstractConfiguration
Member Functions: add, addFront, addWriteable, enumerate, getRaw, highest, insert, lowest, removeConfiguration, removeRaw, setRaw
Inherited Functions: createView, duplicate, enumerate, expand, getBool, getDouble, getInt, getRaw, getRawString, getString, has, hasOption, hasProperty, keys, parseBool, parseInt, referenceCount, release, remove, removeRaw, setBool, setDouble, setInt, setRaw, setRawWithEvent, setString
typedef Poco::AutoPtr < AbstractConfiguration > ConfigPtr;
Creates the LayeredConfiguration.
void add(
AbstractConfiguration * pConfig
);
Adds a read-only configuration to the back of the LayeredConfiguration. The LayeredConfiguration does not take ownership of the given configuration. In other words, the configuration's reference count is incremented.
void add(
AbstractConfiguration * pConfig,
bool shared
);
Adds a read-only configuration to the back of the LayeredConfiguration. If shared is false, the LayeredConfiguration takes ownership of the given configuration (and the configuration's reference count remains unchanged).
void add(
AbstractConfiguration * pConfig,
int priority
);
Adds a read-only configuration to the LayeredConfiguration. The LayeredConfiguration does not take ownership of the given configuration. In other words, the configuration's reference count is incremented.
void add(
AbstractConfiguration * pConfig,
int priority,
bool shared
);
Adds a read-only configuration the LayeredConfiguration. If shared is false, the LayeredConfiguration takes ownership of the given configuration (and the configuration's reference count remains unchanged).
void add(
AbstractConfiguration * pConfig,
int priority,
bool writeable,
bool shared
);
Adds a configuration to the LayeredConfiguration. If shared is false, the LayeredConfiguration takes ownership of the given configuration (and the configuration's reference count remains unchanged).
void addFront(
AbstractConfiguration * pConfig
);
Deprecated. This function is deprecated and should no longer be used.
Adds a read-only configuration to the front of the LayeredConfiguration. The LayeredConfiguration does not take ownership of the given configuration. In other words, the configuration's reference count is incremented.
void addFront(
AbstractConfiguration * pConfig,
bool shared
);
Deprecated. This function is deprecated and should no longer be used.
Adds a read-only configuration to the front of the LayeredConfiguration. If shared is true, the LayeredConfiguration takes ownership of the given configuration.
void addWriteable(
AbstractConfiguration * 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.
void addWriteable(
AbstractConfiguration * pConfig,
int priority,
bool shared
);
Adds a writeable configuration to the LayeredConfiguration. If shared is false, the LayeredConfiguration takes ownership of the given configuration (and the configuration's reference count remains unchanged).
void removeConfiguration(
AbstractConfiguration * pConfig
);
Removes the given configuration from the LayeredConfiguration.
Does nothing if the given configuration is not part of the LayeredConfiguration.
void enumerate(
const std::string & key,
Keys & range
) const;
bool getRaw(
const std::string & key,
std::string & value
) const;
int highest() const;
void insert(
const ConfigItem & item
);
int lowest() const;
void removeRaw(
const std::string & key
);
void setRaw(
const std::string & key,
const std::string & value
);