Poco::Util

class LayeredConfiguration

File Information

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 protected

 

Types Aliases

Ptr

using Ptr = Poco::AutoPtr < LayeredConfiguration >;

Constructors

LayeredConfiguration

LayeredConfiguration();

Creates the LayeredConfiguration.

Destructor

~LayeredConfiguration protected virtual

~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 protected virtual

void enumerate(
    const std::string & key,
    Keys & range
) const;

getRaw protected virtual

bool getRaw(
    const std::string & key,
    std::string & value
) const;

highest protected

int highest() const;

insert protected

void insert(
    const ConfigItem & item
);

lowest protected

int lowest() const;

removeRaw protected virtual

void removeRaw(
    const std::string & key
);

setRaw protected virtual

void setRaw(
    const std::string & key,
    const std::string & value
);