diff options
| author | Remko Tronçon <git@el-tramo.be> | 2011-04-20 18:48:38 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2011-04-23 07:53:50 (GMT) | 
| commit | b6246efcf15f03bb5b44bc79190bc9f4c7be9506 (patch) | |
| tree | b85028f8bca17b066512e0bad688b74fb7717a34 | |
| parent | b381d4fac4c4362ab534ab73875126cb5c6cd101 (diff) | |
| download | swift-b6246efcf15f03bb5b44bc79190bc9f4c7be9506.zip swift-b6246efcf15f03bb5b44bc79190bc9f4c7be9506.tar.bz2 | |
Finished Stream Management parserialements.
21 files changed, 463 insertions, 37 deletions
| diff --git a/Swiften/Elements/StreamManagementEnabled.cpp b/Swiften/Elements/StreamManagementEnabled.cpp new file mode 100644 index 0000000..bab7516 --- /dev/null +++ b/Swiften/Elements/StreamManagementEnabled.cpp @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Elements/StreamManagementEnabled.h> + +using namespace Swift; + +StreamManagementEnabled::StreamManagementEnabled() { +} + +StreamManagementEnabled::~StreamManagementEnabled() { +} diff --git a/Swiften/Elements/StreamManagementEnabled.h b/Swiften/Elements/StreamManagementEnabled.h index 0c72b84..02e77f3 100644 --- a/Swiften/Elements/StreamManagementEnabled.h +++ b/Swiften/Elements/StreamManagementEnabled.h @@ -1,17 +1,39 @@  /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2011 Remko Tronçon   * Licensed under the GNU General Public License v3.   * See Documentation/Licenses/GPLv3.txt for more information.   */  #pragma once -#include "Swiften/Elements/Element.h" +#include <string> +#include <Swiften/Elements/Element.h>  namespace Swift {  	class StreamManagementEnabled : public Element {  		public: -			StreamManagementEnabled() {} +			StreamManagementEnabled(); +			~StreamManagementEnabled(); + +			void setResumeSupported() { +				resumeSupported = true; +			} + +			bool getResumeSupported() const { +				return resumeSupported; +			} + +			void setResumeID(const std::string& id) { +				resumeID = id; +			} + +			const std::string& getResumeID() const { +				return resumeID; +			} + +		private: +			bool resumeSupported; +			std::string resumeID;  	};  } diff --git a/Swiften/Elements/StreamResume.cpp b/Swiften/Elements/StreamResume.cpp new file mode 100644 index 0000000..d55ef78 --- /dev/null +++ b/Swiften/Elements/StreamResume.cpp @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Elements/StreamResume.h> + +using namespace Swift; + +StreamResume::StreamResume() { +} + +StreamResume::~StreamResume() { +} diff --git a/Swiften/Elements/StreamResume.h b/Swiften/Elements/StreamResume.h new file mode 100644 index 0000000..652182a --- /dev/null +++ b/Swiften/Elements/StreamResume.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <string> +#include <boost/optional.hpp> + +#include <Swiften/Elements/Element.h> + +namespace Swift { +	class StreamResume : public Element { +		public: +			StreamResume(); +			~StreamResume(); + +			void setResumeID(const std::string& id) { +				resumeID = id; +			} + +			const std::string& getResumeID() const { +				return resumeID; +			} + +			const boost::optional<int> getHandledStanzasCount() const { +				return handledStanzasCount; +			} + +			void setHandledStanzasCount(int i) { +				handledStanzasCount = i; +			} + +		private: +			std::string resumeID; +			boost::optional<int> handledStanzasCount; +	}; +} diff --git a/Swiften/Elements/StreamResumed.cpp b/Swiften/Elements/StreamResumed.cpp new file mode 100644 index 0000000..552e654 --- /dev/null +++ b/Swiften/Elements/StreamResumed.cpp @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Elements/StreamResumed.h> + +using namespace Swift; + +StreamResumed::StreamResumed() { +} + +StreamResumed::~StreamResumed() { +} diff --git a/Swiften/Elements/StreamResumed.h b/Swiften/Elements/StreamResumed.h new file mode 100644 index 0000000..cc42895 --- /dev/null +++ b/Swiften/Elements/StreamResumed.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <string> +#include <boost/optional.hpp> + +#include <Swiften/Elements/Element.h> + +namespace Swift { +	class StreamResumed : public Element { +		public: +			StreamResumed(); +			~StreamResumed(); + +			void setResumeID(const std::string& id) { +				resumeID = id; +			} + +			const std::string& getResumeID() const { +				return resumeID; +			} + +			const boost::optional<int> getHandledStanzasCount() const { +				return handledStanzasCount; +			} + +			void setHandledStanzasCount(int i) { +				handledStanzasCount = i; +			} + +		private: +			std::string resumeID; +			boost::optional<int> handledStanzasCount; +	}; +} diff --git a/Swiften/Parser/SConscript b/Swiften/Parser/SConscript index 03e4208..e7e8991 100644 --- a/Swiften/Parser/SConscript +++ b/Swiften/Parser/SConscript @@ -59,6 +59,8 @@ sources = [  		"StanzaParser.cpp",  		"StreamErrorParser.cpp",  		"StreamFeaturesParser.cpp", +		"StreamManagementEnabledParser.cpp", +		"StreamResumeParser.cpp",  		"XMLParser.cpp",  		"XMLParserClient.cpp",  		"XMLParserFactory.cpp", diff --git a/Swiften/Parser/StreamManagementEnabledParser.cpp b/Swiften/Parser/StreamManagementEnabledParser.cpp new file mode 100644 index 0000000..906e071 --- /dev/null +++ b/Swiften/Parser/StreamManagementEnabledParser.cpp @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Parser/StreamManagementEnabledParser.h> + +using namespace Swift; + +StreamManagementEnabledParser::StreamManagementEnabledParser() : level(TopLevel) { +} + +StreamManagementEnabledParser::~StreamManagementEnabledParser() { +} + +void StreamManagementEnabledParser::handleStartElement(const std::string&, const std::string&, const AttributeMap& attributes) { +	if (level == TopLevel) { +		if (attributes.getBoolAttribute("resume", false)) { +			getElementGeneric()->setResumeSupported(); +		} +		getElementGeneric()->setResumeID(attributes.getAttribute("id")); +	} +	++level; +} + +void StreamManagementEnabledParser::handleEndElement(const std::string&, const std::string&) { +	--level; +} diff --git a/Swiften/Parser/StreamManagementEnabledParser.h b/Swiften/Parser/StreamManagementEnabledParser.h index adc45ab..db616af 100644 --- a/Swiften/Parser/StreamManagementEnabledParser.h +++ b/Swiften/Parser/StreamManagementEnabledParser.h @@ -1,17 +1,27 @@  /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2011 Remko Tronçon   * Licensed under the GNU General Public License v3.   * See Documentation/Licenses/GPLv3.txt for more information.   */  #pragma once -#include "Swiften/Parser/GenericElementParser.h" -#include "Swiften/Elements/StreamManagementEnabled.h" +#include <Swiften/Parser/GenericElementParser.h> +#include <Swiften/Elements/StreamManagementEnabled.h>  namespace Swift {  	class StreamManagementEnabledParser : public GenericElementParser<StreamManagementEnabled> {  		public: -			StreamManagementEnabledParser() : GenericElementParser<StreamManagementEnabled>() {} +			StreamManagementEnabledParser(); +			~StreamManagementEnabledParser(); + +			virtual void handleStartElement(const std::string&, const std::string&, const AttributeMap&); +			virtual void handleEndElement(const std::string&, const std::string&); + +		private: +			enum Level {  +				TopLevel = 0 +			}; +			int level;  	};  } diff --git a/Swiften/Parser/StreamResumeParser.cpp b/Swiften/Parser/StreamResumeParser.cpp new file mode 100644 index 0000000..f54dcf0 --- /dev/null +++ b/Swiften/Parser/StreamResumeParser.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Parser/StreamResumeParser.h> + +#include <boost/lexical_cast.hpp> + +using namespace Swift; + +StreamResumeParser::StreamResumeParser() : level(TopLevel) { +} + +StreamResumeParser::~StreamResumeParser() { +} + +void StreamResumeParser::handleStartElement(const std::string&, const std::string&, const AttributeMap& attributes) { +	if (level == TopLevel) { +		boost::optional<std::string> handledStanzasCount = attributes.getAttributeValue("h"); +		if (handledStanzasCount) { +			try { +				getElementGeneric()->setHandledStanzasCount(boost::lexical_cast<int>(*handledStanzasCount)); +			} +			catch (const boost::bad_lexical_cast &) { +			} +		} +		getElementGeneric()->setResumeID(attributes.getAttribute("previd")); +	} +	++level; +} + +void StreamResumeParser::handleEndElement(const std::string&, const std::string&) { +	--level; +} diff --git a/Swiften/Parser/StreamResumeParser.h b/Swiften/Parser/StreamResumeParser.h new file mode 100644 index 0000000..0ccd24c --- /dev/null +++ b/Swiften/Parser/StreamResumeParser.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <Swiften/Parser/GenericElementParser.h> +#include <Swiften/Elements/StreamResume.h> + +namespace Swift { +	class StreamResumeParser : public GenericElementParser<StreamResume> { +		public: +			StreamResumeParser(); +			~StreamResumeParser(); + +			virtual void handleStartElement(const std::string&, const std::string&, const AttributeMap&); +			virtual void handleEndElement(const std::string&, const std::string&); + +		private: +			enum Level {  +				TopLevel = 0 +			}; +			int level; +	}; +} diff --git a/Swiften/Parser/UnitTest/StreamManagementEnabledParserTest.cpp b/Swiften/Parser/UnitTest/StreamManagementEnabledParserTest.cpp new file mode 100644 index 0000000..07b7b31 --- /dev/null +++ b/Swiften/Parser/UnitTest/StreamManagementEnabledParserTest.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> + +#include <Swiften/Parser/StreamManagementEnabledParser.h> +#include <Swiften/Parser/UnitTest/ElementParserTester.h> + +using namespace Swift; + +class StreamManagementEnabledParserTest : public CppUnit::TestFixture { +		CPPUNIT_TEST_SUITE(StreamManagementEnabledParserTest); +		CPPUNIT_TEST(testParse); +		CPPUNIT_TEST_SUITE_END(); + +	public: +		void testParse() { +			StreamManagementEnabledParser testling; +			ElementParserTester parser(&testling); + +			CPPUNIT_ASSERT(parser.parse( +				"<enabled xmlns=\"urn:xmpp:sm:3\" id=\"some-long-sm-id\" resume=\"true\"/>")); + +			boost::shared_ptr<StreamManagementEnabled> element = boost::dynamic_pointer_cast<StreamManagementEnabled>(testling.getElement()); +			CPPUNIT_ASSERT(element->getResumeSupported()); +			CPPUNIT_ASSERT_EQUAL(std::string("some-long-sm-id"), element->getResumeID()); +		} +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(StreamManagementEnabledParserTest); diff --git a/Swiften/Parser/XMPPParser.cpp b/Swiften/Parser/XMPPParser.cpp index 1fb7682..adcfdf5 100644 --- a/Swiften/Parser/XMPPParser.cpp +++ b/Swiften/Parser/XMPPParser.cpp @@ -29,6 +29,7 @@  #include "Swiften/Parser/EnableStreamManagementParser.h"  #include "Swiften/Parser/StreamManagementEnabledParser.h"  #include "Swiften/Parser/StreamManagementFailedParser.h" +#include "Swiften/Parser/StreamResumeParser.h"  #include "Swiften/Parser/StanzaAckParser.h"  #include "Swiften/Parser/StanzaAckRequestParser.h"  #include "Swiften/Parser/StartTLSParser.h" @@ -182,6 +183,12 @@ ElementParser* XMPPParser::createElementParser(const std::string& element, const  	else if (element == "failed" && ns == "urn:xmpp:sm:2") {  		return new StreamManagementFailedParser();  	} +	else if (element == "resume" && ns == "urn:xmpp:sm:2") { +		return new StreamResumeParser(); +	} +	else if (element == "resumed" && ns == "urn:xmpp:sm:2") { +		return new StreamResumeParser(); +	}  	else if (element == "a" && ns == "urn:xmpp:sm:2") {  		return new StanzaAckParser();  	} diff --git a/Swiften/SConscript b/Swiften/SConscript index d2706f1..7c1f70f 100644 --- a/Swiften/SConscript +++ b/Swiften/SConscript @@ -77,6 +77,9 @@ if env["SCONS_STAGE"] == "build" :  			"Elements/RosterPayload.cpp",  			"Elements/Stanza.cpp",  			"Elements/StatusShow.cpp", +			"Elements/StreamManagementEnabled.cpp", +			"Elements/StreamResume.cpp", +			"Elements/StreamResumed.cpp",  			"Elements/VCard.cpp",  			"Elements/MUCOccupant.cpp",  			"Entity/Entity.cpp", @@ -105,6 +108,9 @@ if env["SCONS_STAGE"] == "build" :  			"Serializer/CompressRequestSerializer.cpp",  			"Serializer/ElementSerializer.cpp",  			"Serializer/MessageSerializer.cpp", +			"Serializer/StreamManagementEnabledSerializer.cpp", +			"Serializer/StreamResumeSerializer.cpp", +			"Serializer/StreamResumedSerializer.cpp",  			"Serializer/ComponentHandshakeSerializer.cpp",  			"Serializer/PayloadSerializer.cpp",  			"Serializer/PayloadSerializerCollection.cpp", @@ -265,6 +271,7 @@ if env["SCONS_STAGE"] == "build" :  			File("Parser/UnitTest/SerializingParserTest.cpp"),  			File("Parser/UnitTest/StanzaParserTest.cpp"),  			File("Parser/UnitTest/StreamFeaturesParserTest.cpp"), +			File("Parser/UnitTest/StreamManagementEnabledParserTest.cpp"),  			File("Parser/UnitTest/XMLParserTest.cpp"),  			File("Parser/UnitTest/XMPPParserTest.cpp"),  			File("Presence/UnitTest/PresenceOracleTest.cpp"), diff --git a/Swiften/Serializer/StreamManagementEnabledSerializer.cpp b/Swiften/Serializer/StreamManagementEnabledSerializer.cpp new file mode 100644 index 0000000..02cf948 --- /dev/null +++ b/Swiften/Serializer/StreamManagementEnabledSerializer.cpp @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Serializer/StreamManagementEnabledSerializer.h> + +#include <boost/shared_ptr.hpp> + +#include <Swiften/Elements/StreamManagementEnabled.h> +#include <Swiften/Serializer/XML/XMLElement.h> + +using namespace Swift; + +StreamManagementEnabledSerializer::StreamManagementEnabledSerializer() : GenericElementSerializer<StreamManagementEnabled>() { +} + +std::string StreamManagementEnabledSerializer::serialize(boost::shared_ptr<Element> el) const { +	boost::shared_ptr<StreamManagementEnabled> e(boost::dynamic_pointer_cast<StreamManagementEnabled>(el)); +	XMLElement element("enabled", "urn:xmpp:sm:2"); +	if (!e->getResumeID().empty()) { +		element.setAttribute("id", e->getResumeID()); +	} +	if (e->getResumeSupported()) { +		element.setAttribute("resume", "true"); +	} +	return element.serialize(); +} diff --git a/Swiften/Serializer/StreamManagementEnabledSerializer.h b/Swiften/Serializer/StreamManagementEnabledSerializer.h index fc7bd86..8ee9e31 100644 --- a/Swiften/Serializer/StreamManagementEnabledSerializer.h +++ b/Swiften/Serializer/StreamManagementEnabledSerializer.h @@ -10,16 +10,12 @@  #include "Swiften/Elements/StreamManagementEnabled.h"  #include "Swiften/Serializer/GenericElementSerializer.h" -#include "Swiften/Serializer/XML/XMLElement.h"  namespace Swift {  	class StreamManagementEnabledSerializer : public GenericElementSerializer<StreamManagementEnabled> {  		public: -			StreamManagementEnabledSerializer() : GenericElementSerializer<StreamManagementEnabled>() { -			} +			StreamManagementEnabledSerializer(); -			virtual std::string serialize(boost::shared_ptr<Element>) const { -				return XMLElement("enabled", "urn:xmpp:sm:2").serialize(); -			} +			virtual std::string serialize(boost::shared_ptr<Element>) const;  	};  } diff --git a/Swiften/Serializer/StreamResumeSerializer.cpp b/Swiften/Serializer/StreamResumeSerializer.cpp new file mode 100644 index 0000000..a7a2e3b --- /dev/null +++ b/Swiften/Serializer/StreamResumeSerializer.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Serializer/StreamResumeSerializer.h> + +#include <boost/shared_ptr.hpp> +#include <boost/lexical_cast.hpp> + +#include <Swiften/Elements/StreamResume.h> +#include <Swiften/Serializer/XML/XMLElement.h> + +using namespace Swift; + +StreamResumeSerializer::StreamResumeSerializer() : GenericElementSerializer<StreamResume>() { +} + +std::string StreamResumeSerializer::serialize(boost::shared_ptr<Element> el) const { +	boost::shared_ptr<StreamResume> e(boost::dynamic_pointer_cast<StreamResume>(el)); +	XMLElement element("resume", "urn:xmpp:sm:2"); +	element.setAttribute("previd", e->getResumeID()); +	if (e->getHandledStanzasCount()) { +		element.setAttribute("h", boost::lexical_cast<std::string>(e->getHandledStanzasCount())); +	} +	return element.serialize(); +} diff --git a/Swiften/Serializer/StreamResumeSerializer.h b/Swiften/Serializer/StreamResumeSerializer.h new file mode 100644 index 0000000..6ea7365 --- /dev/null +++ b/Swiften/Serializer/StreamResumeSerializer.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <boost/shared_ptr.hpp> + +#include <Swiften/Elements/StreamResume.h> +#include <Swiften/Serializer/GenericElementSerializer.h> + +namespace Swift { +	class StreamResumeSerializer : public GenericElementSerializer<StreamResume> { +		public: +			StreamResumeSerializer(); + +			virtual std::string serialize(boost::shared_ptr<Element>) const; +	}; +} diff --git a/Swiften/Serializer/StreamResumedSerializer.cpp b/Swiften/Serializer/StreamResumedSerializer.cpp new file mode 100644 index 0000000..d3beafb --- /dev/null +++ b/Swiften/Serializer/StreamResumedSerializer.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <Swiften/Serializer/StreamResumedSerializer.h> + +#include <boost/shared_ptr.hpp> +#include <boost/lexical_cast.hpp> + +#include <Swiften/Elements/StreamResumed.h> +#include <Swiften/Serializer/XML/XMLElement.h> + +using namespace Swift; + +StreamResumedSerializer::StreamResumedSerializer() : GenericElementSerializer<StreamResumed>() { +} + +std::string StreamResumedSerializer::serialize(boost::shared_ptr<Element> el) const { +	boost::shared_ptr<StreamResumed> e(boost::dynamic_pointer_cast<StreamResumed>(el)); +	XMLElement element("resumed", "urn:xmpp:sm:2"); +	element.setAttribute("previd", e->getResumeID()); +	if (e->getHandledStanzasCount()) { +		element.setAttribute("h", boost::lexical_cast<std::string>(e->getHandledStanzasCount())); +	} +	return element.serialize(); +} diff --git a/Swiften/Serializer/StreamResumedSerializer.h b/Swiften/Serializer/StreamResumedSerializer.h new file mode 100644 index 0000000..38d846f --- /dev/null +++ b/Swiften/Serializer/StreamResumedSerializer.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <boost/shared_ptr.hpp> + +#include <Swiften/Elements/StreamResumed.h> +#include <Swiften/Serializer/GenericElementSerializer.h> + +namespace Swift { +	class StreamResumedSerializer : public GenericElementSerializer<StreamResumed> { +		public: +			StreamResumedSerializer(); + +			virtual std::string serialize(boost::shared_ptr<Element>) const; +	}; +} diff --git a/Swiften/Serializer/XMPPSerializer.cpp b/Swiften/Serializer/XMPPSerializer.cpp index 06f3558..19a30ce 100644 --- a/Swiften/Serializer/XMPPSerializer.cpp +++ b/Swiften/Serializer/XMPPSerializer.cpp @@ -4,36 +4,38 @@   * See Documentation/Licenses/GPLv3.txt for more information.   */ -#include "Swiften/Serializer/XMPPSerializer.h" +#include <Swiften/Serializer/XMPPSerializer.h>  #include <boost/bind.hpp>  #include <boost/smart_ptr/make_shared.hpp>  #include <iostream>  #include <cassert> -#include "Swiften/Elements/ProtocolHeader.h" -#include "Swiften/Base/foreach.h" -#include "Swiften/Serializer/CompressRequestSerializer.h" -#include "Swiften/Serializer/CompressFailureSerializer.h" -#include "Swiften/Serializer/StreamErrorSerializer.h" -#include "Swiften/Serializer/StreamFeaturesSerializer.h" -#include "Swiften/Serializer/AuthRequestSerializer.h" -#include "Swiften/Serializer/AuthFailureSerializer.h" -#include "Swiften/Serializer/AuthSuccessSerializer.h" -#include "Swiften/Serializer/AuthChallengeSerializer.h" -#include "Swiften/Serializer/AuthResponseSerializer.h" -#include "Swiften/Serializer/EnableStreamManagementSerializer.h" -#include "Swiften/Serializer/StreamManagementEnabledSerializer.h" -#include "Swiften/Serializer/StreamManagementFailedSerializer.h" -#include "Swiften/Serializer/StanzaAckSerializer.h" -#include "Swiften/Serializer/StanzaAckRequestSerializer.h" -#include "Swiften/Serializer/StartTLSRequestSerializer.h" -#include "Swiften/Serializer/StartTLSFailureSerializer.h" -#include "Swiften/Serializer/TLSProceedSerializer.h" -#include "Swiften/Serializer/MessageSerializer.h" -#include "Swiften/Serializer/PresenceSerializer.h" -#include "Swiften/Serializer/IQSerializer.h" -#include "Swiften/Serializer/ComponentHandshakeSerializer.h" +#include <Swiften/Elements/ProtocolHeader.h> +#include <Swiften/Base/foreach.h> +#include <Swiften/Serializer/CompressRequestSerializer.h> +#include <Swiften/Serializer/CompressFailureSerializer.h> +#include <Swiften/Serializer/StreamErrorSerializer.h> +#include <Swiften/Serializer/StreamFeaturesSerializer.h> +#include <Swiften/Serializer/AuthRequestSerializer.h> +#include <Swiften/Serializer/AuthFailureSerializer.h> +#include <Swiften/Serializer/AuthSuccessSerializer.h> +#include <Swiften/Serializer/AuthChallengeSerializer.h> +#include <Swiften/Serializer/AuthResponseSerializer.h> +#include <Swiften/Serializer/EnableStreamManagementSerializer.h> +#include <Swiften/Serializer/StreamManagementEnabledSerializer.h> +#include <Swiften/Serializer/StreamResumeSerializer.h> +#include <Swiften/Serializer/StreamResumedSerializer.h> +#include <Swiften/Serializer/StreamManagementFailedSerializer.h> +#include <Swiften/Serializer/StanzaAckSerializer.h> +#include <Swiften/Serializer/StanzaAckRequestSerializer.h> +#include <Swiften/Serializer/StartTLSRequestSerializer.h> +#include <Swiften/Serializer/StartTLSFailureSerializer.h> +#include <Swiften/Serializer/TLSProceedSerializer.h> +#include <Swiften/Serializer/MessageSerializer.h> +#include <Swiften/Serializer/PresenceSerializer.h> +#include <Swiften/Serializer/IQSerializer.h> +#include <Swiften/Serializer/ComponentHandshakeSerializer.h>  namespace Swift { @@ -56,6 +58,8 @@ XMPPSerializer::XMPPSerializer(PayloadSerializerCollection* payloadSerializers,  	serializers_.push_back(boost::make_shared<EnableStreamManagementSerializer>());  	serializers_.push_back(boost::make_shared<StreamManagementEnabledSerializer>());  	serializers_.push_back(boost::make_shared<StreamManagementFailedSerializer>()); +	serializers_.push_back(boost::make_shared<StreamResumeSerializer>()); +	serializers_.push_back(boost::make_shared<StreamResumedSerializer>());  	serializers_.push_back(boost::make_shared<StanzaAckSerializer>());  	serializers_.push_back(boost::make_shared<StanzaAckRequestSerializer>());  	serializers_.push_back(boost::make_shared<ComponentHandshakeSerializer>()); | 
 Swift
 Swift