diff options
Diffstat (limited to 'Swiften/Parser/AttributeMap.cpp')
-rw-r--r-- | Swiften/Parser/AttributeMap.cpp | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/Swiften/Parser/AttributeMap.cpp b/Swiften/Parser/AttributeMap.cpp index d508157..7814a64 100644 --- a/Swiften/Parser/AttributeMap.cpp +++ b/Swiften/Parser/AttributeMap.cpp @@ -1,55 +1,60 @@ /* - * Copyright (c) 2011 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2011-2018 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #include <Swiften/Parser/AttributeMap.h> #include <algorithm> + #include <boost/optional.hpp> -#include <boost/lambda/lambda.hpp> -#include <boost/lambda/bind.hpp> using namespace Swift; -namespace lambda = boost::lambda; AttributeMap::AttributeMap() { } std::string AttributeMap::getAttribute(const std::string& attribute, const std::string& ns) const { - AttributeValueMap::const_iterator i = std::find_if(attributes.begin(), attributes.end(), - lambda::bind(&AttributeMap::Entry::getAttribute, lambda::_1) == Attribute(attribute, ns)); - if (i == attributes.end()) { - return ""; - } - else { - return i->getValue(); - } + const auto i = std::find_if(attributes.begin(), attributes.end(), [&](const Entry& entry) { + return entry.getAttribute() == Attribute(attribute, ns); + }); + if (i == attributes.end()) { + return ""; + } + else { + return i->getValue(); + } } bool AttributeMap::getBoolAttribute(const std::string& attribute, bool defaultValue) const { - AttributeValueMap::const_iterator i = std::find_if(attributes.begin(), attributes.end(), - lambda::bind(&AttributeMap::Entry::getAttribute, lambda::_1) == Attribute(attribute, "")); - if (i == attributes.end()) { - return defaultValue; - } - else { - return i->getValue() == "true" || i->getValue() == "1"; - } + const auto i = std::find_if(attributes.begin(), attributes.end(), [&](const Entry& entry) { + return entry.getAttribute() == Attribute(attribute, ""); + }); + if (i == attributes.end()) { + return defaultValue; + } + else { + return i->getValue() == "true" || i->getValue() == "1"; + } } boost::optional<std::string> AttributeMap::getAttributeValue(const std::string& attribute) const { - AttributeValueMap::const_iterator i = std::find_if(attributes.begin(), attributes.end(), - lambda::bind(&AttributeMap::Entry::getAttribute, lambda::_1) == Attribute(attribute, "")); - if (i == attributes.end()) { - return boost::optional<std::string>(); - } - else { - return i->getValue(); - } + const auto i = std::find_if(attributes.begin(), attributes.end(), [&](const Entry& entry) { + return entry.getAttribute() == Attribute(attribute, ""); + }); + if (i == attributes.end()) { + return boost::optional<std::string>(); + } + else { + return i->getValue(); + } } void AttributeMap::addAttribute(const std::string& name, const std::string& ns, const std::string& value) { - attributes.push_back(Entry(Attribute(name, ns), value)); + attributes.push_back(Entry(Attribute(name, ns), value)); +} + +void AttributeMap::addAttribute(const std::string& name, const std::string& ns, const std::string& prefix, const std::string& value) { + attributes.push_back(Entry(Attribute(name, ns, prefix), value)); } |