diff options
Diffstat (limited to 'Swiften/Parser/PayloadParsers/MAMResultParser.cpp')
-rw-r--r-- | Swiften/Parser/PayloadParsers/MAMResultParser.cpp | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/Swiften/Parser/PayloadParsers/MAMResultParser.cpp b/Swiften/Parser/PayloadParsers/MAMResultParser.cpp index ac32100..e39ed94 100644 --- a/Swiften/Parser/PayloadParsers/MAMResultParser.cpp +++ b/Swiften/Parser/PayloadParsers/MAMResultParser.cpp @@ -18,42 +18,42 @@ MAMResultParser::MAMResultParser(PayloadParserFactoryCollection* factories) : fa } void MAMResultParser::handleStartElement(const std::string& element, const std::string& ns, const AttributeMap& attributes) { - if (level_ == TopLevel) { - boost::optional<std::string> attributeValue; - if ((attributeValue = attributes.getAttributeValue("id"))) { - getPayloadInternal()->setID(*attributeValue); - } - if ((attributeValue = attributes.getAttributeValue("queryid"))) { - getPayloadInternal()->setQueryID(*attributeValue); - } - } else if (level_ == PayloadLevel) { - if (element == "forwarded" && ns == "urn:xmpp:forward:0") { - payloadParser_ = boost::make_shared<ForwardedParser>(factories_); - } - } - - if (payloadParser_) { - /* parsing a nested payload */ - payloadParser_->handleStartElement(element, ns, attributes); - } - - ++level_; + if (level_ == TopLevel) { + boost::optional<std::string> attributeValue; + if ((attributeValue = attributes.getAttributeValue("id"))) { + getPayloadInternal()->setID(*attributeValue); + } + if ((attributeValue = attributes.getAttributeValue("queryid"))) { + getPayloadInternal()->setQueryID(*attributeValue); + } + } else if (level_ == PayloadLevel) { + if (element == "forwarded" && ns == "urn:xmpp:forward:0") { + payloadParser_ = boost::make_shared<ForwardedParser>(factories_); + } + } + + if (payloadParser_) { + /* parsing a nested payload */ + payloadParser_->handleStartElement(element, ns, attributes); + } + + ++level_; } void MAMResultParser::handleEndElement(const std::string& element, const std::string& ns) { - --level_; - if (payloadParser_ && level_ >= PayloadLevel) { - payloadParser_->handleEndElement(element, ns); - } - if (payloadParser_ && level_ == PayloadLevel) { - /* done parsing nested stanza */ - getPayloadInternal()->setPayload(boost::dynamic_pointer_cast<Forwarded>(payloadParser_->getPayload())); - payloadParser_.reset(); - } + --level_; + if (payloadParser_ && level_ >= PayloadLevel) { + payloadParser_->handleEndElement(element, ns); + } + if (payloadParser_ && level_ == PayloadLevel) { + /* done parsing nested stanza */ + getPayloadInternal()->setPayload(boost::dynamic_pointer_cast<Forwarded>(payloadParser_->getPayload())); + payloadParser_.reset(); + } } void MAMResultParser::handleCharacterData(const std::string& data) { - if (payloadParser_) { - payloadParser_->handleCharacterData(data); - } + if (payloadParser_) { + payloadParser_->handleCharacterData(data); + } } |