diff options
Diffstat (limited to 'Swiften/Parser/UnitTest/ParserTester.h')
-rw-r--r-- | Swiften/Parser/UnitTest/ParserTester.h | 70 |
1 files changed, 32 insertions, 38 deletions
diff --git a/Swiften/Parser/UnitTest/ParserTester.h b/Swiften/Parser/UnitTest/ParserTester.h index 73f013c..aa01d40 100644 --- a/Swiften/Parser/UnitTest/ParserTester.h +++ b/Swiften/Parser/UnitTest/ParserTester.h @@ -1,48 +1,42 @@ /* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once - -#include <Swiften/Parser/XMLParserClient.h> #include <Swiften/Parser/PlatformXMLParserFactory.h> #include <Swiften/Parser/XMLParser.h> +#include <Swiften/Parser/XMLParserClient.h> namespace Swift { - class XMLParser; - - template<typename ParserType> - class ParserTester : public XMLParserClient { - public: - ParserTester(ParserType* parser) : parser_(parser) { - xmlParser_ = PlatformXMLParserFactory().createXMLParser(this); - } - - ~ParserTester() { - delete xmlParser_; - } - - bool parse(const std::string& data) { - return xmlParser_->parse(data); - } - - virtual void handleStartElement(const std::string& element, const std::string& ns, const AttributeMap& attributes) { - parser_->handleStartElement(element, ns, attributes); - } - - virtual void handleEndElement(const std::string& element, const std::string& ns) { - parser_->handleEndElement(element, ns); - } - - virtual void handleCharacterData(const std::string& data) { - parser_->handleCharacterData(data); - } - - private: - XMLParser* xmlParser_; - ParserType* parser_; - }; + class XMLParser; + + template<typename ParserType> + class ParserTester : public XMLParserClient { + public: + ParserTester(ParserType* parser) : xmlParser_(PlatformXMLParserFactory().createXMLParser(this)), parser_(parser) { + } + + bool parse(const std::string& data) { + return xmlParser_->parse(data); + } + + virtual void handleStartElement(const std::string& element, const std::string& ns, const AttributeMap& attributes) { + parser_->handleStartElement(element, ns, attributes); + } + + virtual void handleEndElement(const std::string& element, const std::string& ns) { + parser_->handleEndElement(element, ns); + } + + virtual void handleCharacterData(const std::string& data) { + parser_->handleCharacterData(data); + } + + private: + std::unique_ptr<XMLParser> xmlParser_; + ParserType* parser_; + }; } |