diff --git a/Util/include/Poco/Util/LocalConfigurationView.h b/Util/include/Poco/Util/LocalConfigurationView.h index febb309ce..7d5b6f383 100644 --- a/Util/include/Poco/Util/LocalConfigurationView.h +++ b/Util/include/Poco/Util/LocalConfigurationView.h @@ -20,53 +20,52 @@ #include "Poco/Util/Util.h" namespace Poco { - namespace Util { +namespace Util { - class Util_API LocalConfigurationView : public AbstractConfiguration - /// This configuration implements a "view" into a sub-hierarchy - /// of another configuration. - /// - /// For example, given a configuration with the following properties: - /// config.value1 - /// config.value2 - /// config.sub.value1 - /// config.sub.value2 - /// and a LocalConfigurationView with the prefix "config", then - /// the above properties will be available via the view as - /// value1 - /// value2 - /// sub.value1 - /// sub.value2 - /// - /// A LocalConfigurationView is most useful in combination with a - /// LayeredConfiguration. - /// - /// The LocalConfigurationView only searches for the properties in the viewed Space. - { - public: - LocalConfigurationView(const std::string& prefix, AbstractConfiguration::Ptr pConfig); - /// Creates the LocalConfigurationView. The LocalConfigurationView - /// retains (shared) ownership of the passed configuration. - protected: - bool getRaw(const std::string& key, std::string& value) const; - void setRaw(const std::string& key, const std::string& value); - void enumerate(const std::string& key, Keys& range) const; - void removeRaw(const std::string& key); +class Util_API LocalConfigurationView : public AbstractConfiguration + /// This configuration implements a "view" into a sub-hierarchy + /// of another configuration. + /// + /// For example, given a configuration with the following properties: + /// config.value1 + /// config.value2 + /// config.sub.value1 + /// config.sub.value2 + /// and a LocalConfigurationView with the prefix "config", then + /// the above properties will be available via the view as + /// value1 + /// value2 + /// sub.value1 + /// sub.value2 + /// + /// A LocalConfigurationView is most useful in combination with a + /// LayeredConfiguration. + /// + /// The LocalConfigurationView only searches for the properties in the viewed Space. +{ +public: + LocalConfigurationView(const std::string& prefix, AbstractConfiguration::Ptr pConfig); + /// Creates the LocalConfigurationView. The LocalConfigurationView + /// retains (shared) ownership of the passed configuration. - std::string translateKey(const std::string& key) const; +protected: + bool getRaw(const std::string& key, std::string& value) const; + void setRaw(const std::string& key, const std::string& value); + void enumerate(const std::string& key, Keys& range) const; + void removeRaw(const std::string& key); + std::string translateKey(const std::string& key) const; + ~LocalConfigurationView(); - ~LocalConfigurationView(); +private: + LocalConfigurationView(const LocalConfigurationView&); + LocalConfigurationView& operator=(const LocalConfigurationView&); + std::string _prefix; + AbstractConfiguration::Ptr _pConfig; +}; - private: - LocalConfigurationView(const LocalConfigurationView&); - LocalConfigurationView& operator=(const LocalConfigurationView&); - std::string _prefix; - AbstractConfiguration::Ptr _pConfig; - }; +}} // namespace Poco::Util - } // namespace Util -} // namespace Poco #endif // Util_LocalConfigurationView_INCLUDED diff --git a/Util/src/LocalConfigurationView.cpp b/Util/src/LocalConfigurationView.cpp index 10b414c61..7f8f923be 100644 --- a/Util/src/LocalConfigurationView.cpp +++ b/Util/src/LocalConfigurationView.cpp @@ -13,43 +13,58 @@ #include "Poco/Util/LocalConfigurationView.h" + namespace Poco { - namespace Util { +namespace Util { - LocalConfigurationView::LocalConfigurationView(const std::string& prefix, AbstractConfiguration::Ptr pConfig) : _prefix(prefix), - _pConfig(pConfig) { - poco_check_ptr(pConfig); - } - LocalConfigurationView::~LocalConfigurationView() { - } +LocalConfigurationView::LocalConfigurationView(const std::string& prefix, AbstractConfiguration::Ptr pConfig) : + _prefix(prefix), _pConfig(pConfig) +{ + poco_check_ptr(pConfig); +} - bool LocalConfigurationView::getRaw(const std::string& key, std::string& value) const { - std::string translatedKey = translateKey(key); - return _pConfig->getRaw(translatedKey, value); - } - void LocalConfigurationView::setRaw(const std::string& key, const std::string& value) { - std::string translatedKey = translateKey(key); - _pConfig->setRaw(translatedKey, value); - } +LocalConfigurationView::~LocalConfigurationView() +{ +} - void LocalConfigurationView::enumerate(const std::string& key, Keys& range) const { - std::string translatedKey = translateKey(key); - _pConfig->enumerate(translatedKey, range); - } - void LocalConfigurationView::removeRaw(const std::string& key) { - std::string translatedKey = translateKey(key); - _pConfig->remove(translatedKey); - } +bool LocalConfigurationView::getRaw(const std::string& key, std::string& value) const +{ + std::string translatedKey = translateKey(key); + return _pConfig->getRaw(translatedKey, value); +} - std::string LocalConfigurationView::translateKey(const std::string& key) const { - std::string result = _prefix; - if (!result.empty() && !key.empty() && key[0] != '[') result += '.'; - result += key; - return result; - } - } // namespace Util -} // namespace Poco +void LocalConfigurationView::setRaw(const std::string& key, const std::string& value) +{ + std::string translatedKey = translateKey(key); + _pConfig->setRaw(translatedKey, value); +} + + +void LocalConfigurationView::enumerate(const std::string& key, Keys& range) const +{ + std::string translatedKey = translateKey(key); + _pConfig->enumerate(translatedKey, range); +} + + +void LocalConfigurationView::removeRaw(const std::string& key) +{ + std::string translatedKey = translateKey(key); + _pConfig->remove(translatedKey); +} + + +std::string LocalConfigurationView::translateKey(const std::string& key) const +{ + std::string result = _prefix; + if (!result.empty() && !key.empty() && key[0] != '[') result += '.'; + result += key; + return result; +} + + +}} // namespace Poco::Util