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/OptionSet.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/OptionSet.cpp')
-rw-r--r-- | contrib/libs/poco/Util/src/OptionSet.cpp | 244 |
1 files changed, 122 insertions, 122 deletions
diff --git a/contrib/libs/poco/Util/src/OptionSet.cpp b/contrib/libs/poco/Util/src/OptionSet.cpp index bfda7b7691..637c19dd2e 100644 --- a/contrib/libs/poco/Util/src/OptionSet.cpp +++ b/contrib/libs/poco/Util/src/OptionSet.cpp @@ -1,122 +1,122 @@ -// -// OptionSet.cpp -// -// Library: Util -// Package: Options -// Module: OptionSet -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Util/OptionSet.h" -#include "Poco/Util/OptionException.h" -#include "Poco/Exception.h" - - -namespace Poco { -namespace Util { - - -OptionSet::OptionSet() -{ -} - - -OptionSet::OptionSet(const OptionSet& options): - _options(options._options) -{ -} - - -OptionSet::~OptionSet() -{ -} - - -OptionSet& OptionSet::operator = (const OptionSet& options) -{ - if (&options != this) - _options = options._options; - return *this; -} - - -void OptionSet::addOption(const Option& option) -{ - poco_assert (!option.fullName().empty()); - OptionVec::const_iterator it = _options.begin(); - OptionVec::const_iterator itEnd = _options.end(); - for (; it != itEnd; ++it) - { - if (it->fullName() == option.fullName()) - { - throw DuplicateOptionException(it->fullName()); - } - } - - _options.push_back(option); -} - - -bool OptionSet::hasOption(const std::string& name, bool matchShort) const -{ - bool found = false; - for (Iterator it = _options.begin(); it != _options.end(); ++it) - { - if ((matchShort && it->matchesShort(name)) || (!matchShort && it->matchesFull(name))) - { - if (!found) - found = true; - else - return false; - } - } - return found; -} - - -const Option& OptionSet::getOption(const std::string& name, bool matchShort) const -{ - const Option* pOption = 0; - for (Iterator it = _options.begin(); it != _options.end(); ++it) - { - if ((matchShort && it->matchesShort(name)) || (!matchShort && it->matchesPartial(name))) - { - if (!pOption) - { - pOption = &*it; - if (!matchShort && it->matchesFull(name)) - break; - } - else if (!matchShort && it->matchesFull(name)) - { - pOption = &*it; - break; - } - else throw AmbiguousOptionException(name); - } - } - if (pOption) - return *pOption; - else - throw UnknownOptionException(name); -} - - -OptionSet::Iterator OptionSet::begin() const -{ - return _options.begin(); -} - - -OptionSet::Iterator OptionSet::end() const -{ - return _options.end(); -} - - -} } // namespace Poco::Util +// +// OptionSet.cpp +// +// Library: Util +// Package: Options +// Module: OptionSet +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Util/OptionSet.h" +#include "Poco/Util/OptionException.h" +#include "Poco/Exception.h" + + +namespace Poco { +namespace Util { + + +OptionSet::OptionSet() +{ +} + + +OptionSet::OptionSet(const OptionSet& options): + _options(options._options) +{ +} + + +OptionSet::~OptionSet() +{ +} + + +OptionSet& OptionSet::operator = (const OptionSet& options) +{ + if (&options != this) + _options = options._options; + return *this; +} + + +void OptionSet::addOption(const Option& option) +{ + poco_assert (!option.fullName().empty()); + OptionVec::const_iterator it = _options.begin(); + OptionVec::const_iterator itEnd = _options.end(); + for (; it != itEnd; ++it) + { + if (it->fullName() == option.fullName()) + { + throw DuplicateOptionException(it->fullName()); + } + } + + _options.push_back(option); +} + + +bool OptionSet::hasOption(const std::string& name, bool matchShort) const +{ + bool found = false; + for (Iterator it = _options.begin(); it != _options.end(); ++it) + { + if ((matchShort && it->matchesShort(name)) || (!matchShort && it->matchesFull(name))) + { + if (!found) + found = true; + else + return false; + } + } + return found; +} + + +const Option& OptionSet::getOption(const std::string& name, bool matchShort) const +{ + const Option* pOption = 0; + for (Iterator it = _options.begin(); it != _options.end(); ++it) + { + if ((matchShort && it->matchesShort(name)) || (!matchShort && it->matchesPartial(name))) + { + if (!pOption) + { + pOption = &*it; + if (!matchShort && it->matchesFull(name)) + break; + } + else if (!matchShort && it->matchesFull(name)) + { + pOption = &*it; + break; + } + else throw AmbiguousOptionException(name); + } + } + if (pOption) + return *pOption; + else + throw UnknownOptionException(name); +} + + +OptionSet::Iterator OptionSet::begin() const +{ + return _options.begin(); +} + + +OptionSet::Iterator OptionSet::end() const +{ + return _options.end(); +} + + +} } // namespace Poco::Util |