diff options
author | Thilo Cestonaro <thilo@cestona.ro> | 2011-09-28 22:03:14 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2011-12-13 08:17:58 (GMT) |
commit | fd17fe0d239f97cedebe4ceffa234155bd299b68 (patch) | |
tree | 010ae5155e6e807b548861304657a25699487e1f /Swiften/Parser/BOSHParser.cpp | |
parent | 7d19f0d81371d86d530d0e7083a04db914ce6745 (diff) | |
download | swift-contrib-fd17fe0d239f97cedebe4ceffa234155bd299b68.zip swift-contrib-fd17fe0d239f97cedebe4ceffa234155bd299b68.tar.bz2 |
BOSH implementation started
License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
Diffstat (limited to 'Swiften/Parser/BOSHParser.cpp')
-rw-r--r-- | Swiften/Parser/BOSHParser.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Swiften/Parser/BOSHParser.cpp b/Swiften/Parser/BOSHParser.cpp new file mode 100644 index 0000000..9fb218a --- /dev/null +++ b/Swiften/Parser/BOSHParser.cpp @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2011 Thilo Cestonaro + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include <cassert> + +#include <Swiften/Parser/BOSHParser.h> +#include <Swiften/Parser/XMLParser.h> +#include <Swiften/Parser/PlatformXMLParserFactory.h> + +namespace Swift { + +BOSHParser::BOSHParser() : + xmlParser_(0), + level_(-1), + parseErrorOccurred_(false) +{ + xmlParser_ = PlatformXMLParserFactory().createXMLParser(this); +} + +BOSHParser::~BOSHParser() { + delete xmlParser_; +} + +bool BOSHParser::parse(const std::string& data) { + bool xmlParseResult = xmlParser_->parse(data); + return xmlParseResult && !parseErrorOccurred_; +} + +void BOSHParser::handleStartElement(const std::string& /*element*/, const std::string& /*ns*/, const AttributeMap& attributes) { + if (!parseErrorOccurred_) { + if (level_ == BoshTopLevel) { + boshBodyAttributes_ = attributes; + } + } + ++level_; +} + +void BOSHParser::handleEndElement(const std::string& /*element*/, const std::string& /*ns*/) { + assert(level_ > BoshTopLevel); + --level_; + if (!parseErrorOccurred_) { + + } +} + +void BOSHParser::handleCharacterData(const std::string& /*data*/) { + if (!parseErrorOccurred_) { + + } +} + +} |