diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/Util/src/ConfigurationMapper.cpp | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/poco/Util/src/ConfigurationMapper.cpp')
-rw-r--r-- | contrib/libs/poco/Util/src/ConfigurationMapper.cpp | 202 |
1 files changed, 101 insertions, 101 deletions
diff --git a/contrib/libs/poco/Util/src/ConfigurationMapper.cpp b/contrib/libs/poco/Util/src/ConfigurationMapper.cpp index d76f9c0b6d..54e292be9f 100644 --- a/contrib/libs/poco/Util/src/ConfigurationMapper.cpp +++ b/contrib/libs/poco/Util/src/ConfigurationMapper.cpp @@ -1,101 +1,101 @@ -// -// ConfigurationMapper.cpp -// -// Library: Util -// Package: Configuration -// Module: ConfigurationMapper -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Util/ConfigurationMapper.h" - - -namespace Poco { -namespace Util { - - -ConfigurationMapper::ConfigurationMapper(const std::string& fromPrefix, const std::string& toPrefix, AbstractConfiguration* pConfig): - _fromPrefix(fromPrefix), - _toPrefix(toPrefix), - _pConfig(pConfig) -{ - poco_check_ptr (pConfig); - - if (!_fromPrefix.empty()) _fromPrefix += '.'; - if (!_toPrefix.empty()) _toPrefix += '.'; - - _pConfig->duplicate(); -} - - -ConfigurationMapper::~ConfigurationMapper() -{ - _pConfig->release(); -} - - -bool ConfigurationMapper::getRaw(const std::string& key, std::string& value) const -{ - std::string translatedKey = translateKey(key); - return _pConfig->getRaw(translatedKey, value); -} - - -void ConfigurationMapper::setRaw(const std::string& key, const std::string& value) -{ - std::string translatedKey = translateKey(key); - _pConfig->setRaw(translatedKey, value); -} - - -void ConfigurationMapper::enumerate(const std::string& key, Keys& range) const -{ - std::string cKey(key); - if (!cKey.empty()) cKey += '.'; - std::string::size_type keyLen = cKey.length(); - if (keyLen < _toPrefix.length()) - { - if (_toPrefix.compare(0, keyLen, cKey) == 0) - { - std::string::size_type pos = _toPrefix.find_first_of('.', keyLen); - poco_assert_dbg(pos != std::string::npos); - range.push_back(_toPrefix.substr(keyLen, pos - keyLen)); - } - } - else - { - std::string translatedKey; - if (cKey == _toPrefix) - { - translatedKey = _fromPrefix; - if (!translatedKey.empty()) - translatedKey.resize(translatedKey.length() - 1); - } - else translatedKey = translateKey(key); - _pConfig->enumerate(translatedKey, range); - } -} - - -void ConfigurationMapper::removeRaw(const std::string& key) -{ - std::string translatedKey = translateKey(key); - _pConfig->remove(translatedKey); -} - - -std::string ConfigurationMapper::translateKey(const std::string& key) const -{ - std::string result(key); - if (result.compare(0, _toPrefix.size(), _toPrefix) == 0) - result.replace(0, _toPrefix.size(), _fromPrefix); - return result; -} - - -} } // namespace Poco::Util +// +// ConfigurationMapper.cpp +// +// Library: Util +// Package: Configuration +// Module: ConfigurationMapper +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Util/ConfigurationMapper.h" + + +namespace Poco { +namespace Util { + + +ConfigurationMapper::ConfigurationMapper(const std::string& fromPrefix, const std::string& toPrefix, AbstractConfiguration* pConfig): + _fromPrefix(fromPrefix), + _toPrefix(toPrefix), + _pConfig(pConfig) +{ + poco_check_ptr (pConfig); + + if (!_fromPrefix.empty()) _fromPrefix += '.'; + if (!_toPrefix.empty()) _toPrefix += '.'; + + _pConfig->duplicate(); +} + + +ConfigurationMapper::~ConfigurationMapper() +{ + _pConfig->release(); +} + + +bool ConfigurationMapper::getRaw(const std::string& key, std::string& value) const +{ + std::string translatedKey = translateKey(key); + return _pConfig->getRaw(translatedKey, value); +} + + +void ConfigurationMapper::setRaw(const std::string& key, const std::string& value) +{ + std::string translatedKey = translateKey(key); + _pConfig->setRaw(translatedKey, value); +} + + +void ConfigurationMapper::enumerate(const std::string& key, Keys& range) const +{ + std::string cKey(key); + if (!cKey.empty()) cKey += '.'; + std::string::size_type keyLen = cKey.length(); + if (keyLen < _toPrefix.length()) + { + if (_toPrefix.compare(0, keyLen, cKey) == 0) + { + std::string::size_type pos = _toPrefix.find_first_of('.', keyLen); + poco_assert_dbg(pos != std::string::npos); + range.push_back(_toPrefix.substr(keyLen, pos - keyLen)); + } + } + else + { + std::string translatedKey; + if (cKey == _toPrefix) + { + translatedKey = _fromPrefix; + if (!translatedKey.empty()) + translatedKey.resize(translatedKey.length() - 1); + } + else translatedKey = translateKey(key); + _pConfig->enumerate(translatedKey, range); + } +} + + +void ConfigurationMapper::removeRaw(const std::string& key) +{ + std::string translatedKey = translateKey(key); + _pConfig->remove(translatedKey); +} + + +std::string ConfigurationMapper::translateKey(const std::string& key) const +{ + std::string result(key); + if (result.compare(0, _toPrefix.size(), _toPrefix) == 0) + result.replace(0, _toPrefix.size(), _fromPrefix); + return result; +} + + +} } // namespace Poco::Util |