diff options
Diffstat (limited to 'Swiften/Parser/PayloadParsers/StreamInitiationFileInfoParser.cpp')
-rw-r--r-- | Swiften/Parser/PayloadParsers/StreamInitiationFileInfoParser.cpp | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/Swiften/Parser/PayloadParsers/StreamInitiationFileInfoParser.cpp b/Swiften/Parser/PayloadParsers/StreamInitiationFileInfoParser.cpp index b3888d6..ab5dbbe 100644 --- a/Swiften/Parser/PayloadParsers/StreamInitiationFileInfoParser.cpp +++ b/Swiften/Parser/PayloadParsers/StreamInitiationFileInfoParser.cpp @@ -5,15 +5,15 @@ */ /* - * Copyright (c) 2014 Isode Limited. + * Copyright (c) 2014-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include <Swiften/Parser/PayloadParsers/StreamInitiationFileInfoParser.h> -#include <boost/optional.hpp> #include <boost/lexical_cast.hpp> +#include <boost/optional.hpp> #include <Swiften/Base/DateTime.h> #include <Swiften/Base/Log.h> @@ -21,55 +21,55 @@ namespace Swift { StreamInitiationFileInfoParser::StreamInitiationFileInfoParser() : level(0), parseDescription(false) { - + } void StreamInitiationFileInfoParser::handleStartElement(const std::string& element, const std::string&, const AttributeMap& attributes) { - if (level == 0) { - getPayloadInternal()->setName(attributes.getAttributeValue("name").get_value_or("")); - getPayloadInternal()->setHash(attributes.getAttributeValue("hash").get_value_or("")); - getPayloadInternal()->setAlgo(attributes.getAttributeValue("algo").get_value_or("md5")); - try { - getPayloadInternal()->setSize(boost::lexical_cast<boost::uintmax_t>(attributes.getAttributeValue("size").get_value_or("0"))); - } catch (boost::bad_lexical_cast &) { - getPayloadInternal()->setSize(0); - } - getPayloadInternal()->setDate(stringToDateTime(attributes.getAttributeValue("date").get_value_or(""))); - } else if (level == 1) { - if (element == "desc") { - parseDescription = true; - } else { - parseDescription = false; - if (element == "range") { - boost::uintmax_t offset = 0; - try { - offset = boost::lexical_cast<boost::uintmax_t>(attributes.getAttributeValue("offset").get_value_or("0")); - } catch (boost::bad_lexical_cast &) { - offset = 0; - } - if (offset == 0) { - getPayloadInternal()->setSupportsRangeRequests(true); - } else { - getPayloadInternal()->setRangeOffset(offset); - } - } - } - } - ++level; + if (level == 0) { + getPayloadInternal()->setName(attributes.getAttributeValue("name").get_value_or("")); + getPayloadInternal()->setHash(attributes.getAttributeValue("hash").get_value_or("")); + getPayloadInternal()->setAlgo(attributes.getAttributeValue("algo").get_value_or("md5")); + try { + getPayloadInternal()->setSize(boost::lexical_cast<boost::uintmax_t>(attributes.getAttributeValue("size").get_value_or("0"))); + } catch (boost::bad_lexical_cast &) { + getPayloadInternal()->setSize(0); + } + getPayloadInternal()->setDate(stringToDateTime(attributes.getAttributeValue("date").get_value_or(""))); + } else if (level == 1) { + if (element == "desc") { + parseDescription = true; + } else { + parseDescription = false; + if (element == "range") { + boost::uintmax_t offset = 0; + try { + offset = boost::lexical_cast<boost::uintmax_t>(attributes.getAttributeValue("offset").get_value_or("0")); + } catch (boost::bad_lexical_cast &) { + offset = 0; + } + if (offset == 0) { + getPayloadInternal()->setSupportsRangeRequests(true); + } else { + getPayloadInternal()->setRangeOffset(offset); + } + } + } + } + ++level; } void StreamInitiationFileInfoParser::handleEndElement(const std::string& element, const std::string&) { - --level; - if (parseDescription && element == "desc") { - parseDescription = false; - getPayloadInternal()->setDescription(desc); - } + --level; + if (parseDescription && element == "desc") { + parseDescription = false; + getPayloadInternal()->setDescription(desc); + } } void StreamInitiationFileInfoParser::handleCharacterData(const std::string& data) { - if (parseDescription) { - desc += data; - } + if (parseDescription) { + desc += data; + } } } |