diff options
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers')
7 files changed, 17 insertions, 12 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp index cd9b4d7..b5269d1 100644 --- a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp +++ b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp @@ -26,70 +26,75 @@ #include <Swiften/Serializer/PayloadSerializers/MUCDestroyPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/MUCInvitationPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/SoftwareVersionSerializer.h> #include <Swiften/Serializer/PayloadSerializers/StatusSerializer.h> #include <Swiften/Serializer/PayloadSerializers/StatusShowSerializer.h> #include <Swiften/Serializer/PayloadSerializers/DiscoInfoSerializer.h> #include <Swiften/Serializer/PayloadSerializers/DiscoItemsSerializer.h> #include <Swiften/Serializer/PayloadSerializers/CapsInfoSerializer.h> #include <Swiften/Serializer/PayloadSerializers/ResourceBindSerializer.h> #include <Swiften/Serializer/PayloadSerializers/StartSessionSerializer.h> #include <Swiften/Serializer/PayloadSerializers/SecurityLabelSerializer.h> #include <Swiften/Serializer/PayloadSerializers/SecurityLabelsCatalogSerializer.h> #include <Swiften/Serializer/PayloadSerializers/StreamInitiationSerializer.h> #include <Swiften/Serializer/PayloadSerializers/BytestreamsSerializer.h> #include <Swiften/Serializer/PayloadSerializers/VCardSerializer.h> #include <Swiften/Serializer/PayloadSerializers/VCardUpdateSerializer.h> #include <Swiften/Serializer/PayloadSerializers/RawXMLPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/StorageSerializer.h> #include <Swiften/Serializer/PayloadSerializers/PrivateStorageSerializer.h> #include <Swiften/Serializer/PayloadSerializers/DelaySerializer.h> #include <Swiften/Serializer/PayloadSerializers/FormSerializer.h> #include <Swiften/Serializer/PayloadSerializers/CommandSerializer.h> #include <Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/NicknameSerializer.h> #include <Swiften/Serializer/PayloadSerializers/SearchPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/ReplaceSerializer.h> #include <Swiften/Serializer/PayloadSerializers/LastSerializer.h> #include <Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.h> #include <Swiften/Serializer/PayloadSerializers/UserLocationSerializer.h> #include <Swiften/Serializer/PayloadSerializers/UserTuneSerializer.h> #include <Swiften/Serializer/PayloadSerializers/IdleSerializer.h> #include <Swiften/Serializer/PayloadSerializers/PubSubSerializer.h> #include <Swiften/Serializer/PayloadSerializers/PubSubOwnerPubSubSerializer.h> #include <Swiften/Serializer/PayloadSerializers/PubSubEventSerializer.h> #include <Swiften/Serializer/PayloadSerializers/PubSubErrorSerializer.h> +#include <Swiften/Serializer/PayloadSerializers/ResultSetSerializer.h> +#include <Swiften/Serializer/PayloadSerializers/ForwardedSerializer.h> +#include <Swiften/Serializer/PayloadSerializers/MAMResultSerializer.h> +#include <Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.h> +#include <Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.h> #include <Swiften/Serializer/PayloadSerializers/StreamInitiationFileInfoSerializer.h> #include <Swiften/Serializer/PayloadSerializers/JingleContentPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/JingleFileTransferDescriptionSerializer.h> #include <Swiften/Serializer/PayloadSerializers/JingleFileTransferHashSerializer.h> #include <Swiften/Serializer/PayloadSerializers/JingleFileTransferReceivedSerializer.h> #include <Swiften/Serializer/PayloadSerializers/JingleIBBTransportPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/JinglePayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/S5BProxyRequestSerializer.h> #include <Swiften/Serializer/PayloadSerializers/DeliveryReceiptSerializer.h> #include <Swiften/Serializer/PayloadSerializers/DeliveryReceiptRequestSerializer.h> namespace Swift { FullPayloadSerializerCollection::FullPayloadSerializerCollection() { serializers_.push_back(new IBBSerializer()); serializers_.push_back(new BodySerializer()); serializers_.push_back(new SubjectSerializer()); serializers_.push_back(new ChatStateSerializer()); serializers_.push_back(new PrioritySerializer()); serializers_.push_back(new ErrorSerializer(this)); serializers_.push_back(new RosterSerializer()); serializers_.push_back(new RosterItemExchangeSerializer()); serializers_.push_back(new MUCPayloadSerializer()); serializers_.push_back(new MUCDestroyPayloadSerializer()); serializers_.push_back(new MUCAdminPayloadSerializer()); serializers_.push_back(new MUCInvitationPayloadSerializer()); serializers_.push_back(new MUCOwnerPayloadSerializer(this)); serializers_.push_back(new MUCUserPayloadSerializer(this)); serializers_.push_back(new SoftwareVersionSerializer()); serializers_.push_back(new StatusSerializer()); serializers_.push_back(new StatusShowSerializer()); serializers_.push_back(new DiscoInfoSerializer()); serializers_.push_back(new DiscoItemsSerializer()); @@ -105,50 +110,56 @@ FullPayloadSerializerCollection::FullPayloadSerializerCollection() { serializers_.push_back(new BytestreamsSerializer()); serializers_.push_back(new VCardSerializer()); serializers_.push_back(new VCardUpdateSerializer()); serializers_.push_back(new RawXMLPayloadSerializer()); serializers_.push_back(new StorageSerializer()); serializers_.push_back(new DelaySerializer()); serializers_.push_back(new FormSerializer()); serializers_.push_back(new PrivateStorageSerializer(this)); serializers_.push_back(new CommandSerializer()); serializers_.push_back(new InBandRegistrationPayloadSerializer()); serializers_.push_back(new NicknameSerializer()); serializers_.push_back(new SearchPayloadSerializer()); serializers_.push_back(new ReplaceSerializer()); serializers_.push_back(new LastSerializer()); serializers_.push_back(new WhiteboardSerializer()); serializers_.push_back(new UserLocationSerializer(this)); serializers_.push_back(new UserTuneSerializer(this)); serializers_.push_back(new IdleSerializer()); serializers_.push_back(new StreamInitiationFileInfoSerializer()); serializers_.push_back(new JingleContentPayloadSerializer()); serializers_.push_back(new JingleFileTransferDescriptionSerializer()); serializers_.push_back(new JingleFileTransferHashSerializer()); serializers_.push_back(new JingleFileTransferReceivedSerializer()); serializers_.push_back(new JingleIBBTransportPayloadSerializer()); serializers_.push_back(new JingleS5BTransportPayloadSerializer()); serializers_.push_back(new JinglePayloadSerializer(this)); serializers_.push_back(new S5BProxyRequestSerializer()); serializers_.push_back(new DeliveryReceiptSerializer()); serializers_.push_back(new DeliveryReceiptRequestSerializer()); serializers_.push_back(new PubSubSerializer(this)); serializers_.push_back(new PubSubEventSerializer(this)); serializers_.push_back(new PubSubOwnerPubSubSerializer(this)); serializers_.push_back(new PubSubErrorSerializer()); + + serializers_.push_back(new ResultSetSerializer()); + serializers_.push_back(new ForwardedSerializer(this)); + serializers_.push_back(new MAMResultSerializer(this)); + serializers_.push_back(new MAMQuerySerializer()); + serializers_.push_back(new MAMArchivedSerializer()); foreach(PayloadSerializer* serializer, serializers_) { addSerializer(serializer); } } FullPayloadSerializerCollection::~FullPayloadSerializerCollection() { foreach(PayloadSerializer* serializer, serializers_) { removeSerializer(serializer); delete serializer; } serializers_.clear(); } } diff --git a/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.cpp b/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.cpp index 04a6584..0a49a4b 100644 --- a/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.cpp @@ -1,32 +1,32 @@ /* * Copyright (c) 2014 Kevin Smith and Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include <boost/lexical_cast.hpp> #include <boost/smart_ptr/make_shared.hpp> #include <Swiften/Serializer/XML/XMLElement.h> #include <Swiften/Serializer/XML/XMLRawTextNode.h> #include <Swiften/Serializer/PayloadSerializerCollection.h> #include <Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.h> using namespace Swift; -MAMArchivedSerializer::MAMArchivedSerializer(PayloadSerializerCollection* serializers) : serializers_(serializers) { +MAMArchivedSerializer::MAMArchivedSerializer() { } MAMArchivedSerializer::~MAMArchivedSerializer() { } std::string MAMArchivedSerializer::serializePayload(boost::shared_ptr<MAMArchived> payload) const { if (!payload) { return ""; } XMLElement element("archived", "urn:xmpp:mam:0"); element.setAttribute("by", payload->getBy()); element.setAttribute("id", payload->getID()); return element.serialize(); } diff --git a/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.h b/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.h index 7c60798..67fffcb 100644 --- a/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.h +++ b/Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.h @@ -1,28 +1,25 @@ /* * Copyright (c) 2014 Kevin Smith and 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/Base/Override.h> #include <Swiften/Base/API.h> #include <Swiften/Elements/MAMArchived.h> #include <Swiften/Serializer/GenericPayloadSerializer.h> namespace Swift { class PayloadSerializerCollection; class SWIFTEN_API MAMArchivedSerializer : public GenericPayloadSerializer<MAMArchived> { public: - MAMArchivedSerializer(PayloadSerializerCollection* serializers); + MAMArchivedSerializer(); virtual ~MAMArchivedSerializer(); virtual std::string serializePayload(boost::shared_ptr<MAMArchived>) const SWIFTEN_OVERRIDE; - - private: - PayloadSerializerCollection* serializers_; }; } diff --git a/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.cpp b/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.cpp index 1151fba..6a12f8e 100644 --- a/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.cpp @@ -1,45 +1,45 @@ /* * Copyright (c) 2014 Kevin Smith and Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include <boost/lexical_cast.hpp> #include <boost/smart_ptr/make_shared.hpp> #include <Swiften/Serializer/XML/XMLElement.h> #include <Swiften/Serializer/XML/XMLRawTextNode.h> #include <Swiften/Serializer/PayloadSerializerCollection.h> #include <Swiften/Serializer/PayloadSerializers/FormSerializer.h> #include <Swiften/Serializer/PayloadSerializers/ForwardedSerializer.h> #include <Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.h> #include <Swiften/Serializer/PayloadSerializers/ResultSetSerializer.h> using namespace Swift; -MAMQuerySerializer::MAMQuerySerializer(PayloadSerializerCollection* serializers) : serializers_(serializers) { +MAMQuerySerializer::MAMQuerySerializer() { } MAMQuerySerializer::~MAMQuerySerializer() { } std::string MAMQuerySerializer::serializePayload(boost::shared_ptr<MAMQuery> payload) const { if (!payload) { return ""; } XMLElement element("query", "urn:xmpp:mam:0"); if (payload->getQueryID()) { element.setAttribute("queryid", *payload->getQueryID()); } if (payload->getForm()) { element.addNode(boost::make_shared<XMLRawTextNode>(FormSerializer().serialize(payload->getForm()))); } if (payload->getResultSet()) { element.addNode(boost::make_shared<XMLRawTextNode>(ResultSetSerializer().serialize(payload->getResultSet()))); } return element.serialize(); } diff --git a/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.h b/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.h index a6d1339..11526a8 100644 --- a/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.h +++ b/Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.h @@ -1,28 +1,25 @@ /* * Copyright (c) 2014 Kevin Smith and 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/Base/Override.h> #include <Swiften/Base/API.h> #include <Swiften/Elements/MAMQuery.h> #include <Swiften/Serializer/GenericPayloadSerializer.h> namespace Swift { class PayloadSerializerCollection; class SWIFTEN_API MAMQuerySerializer : public GenericPayloadSerializer<MAMQuery> { public: - MAMQuerySerializer(PayloadSerializerCollection* serializers); + MAMQuerySerializer(); virtual ~MAMQuerySerializer(); virtual std::string serializePayload(boost::shared_ptr<MAMQuery>) const SWIFTEN_OVERRIDE; - - private: - PayloadSerializerCollection* serializers_; }; } diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/MAMArchivedSerializerTest.cpp b/Swiften/Serializer/PayloadSerializers/UnitTest/MAMArchivedSerializerTest.cpp index b174d32..2bd5c6a 100644 --- a/Swiften/Serializer/PayloadSerializers/UnitTest/MAMArchivedSerializerTest.cpp +++ b/Swiften/Serializer/PayloadSerializers/UnitTest/MAMArchivedSerializerTest.cpp @@ -1,41 +1,41 @@ /* * Copyright (c) 2014 Kevin Smith and Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include <boost/smart_ptr/make_shared.hpp> #include <cppunit/extensions/HelperMacros.h> #include <cppunit/extensions/TestFactoryRegistry.h> #include <Swiften/Base/DateTime.h> #include <Swiften/Serializer/PayloadSerializers/MAMArchivedSerializer.h> #include <Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h> using namespace Swift; class MAMArchivedSerializerTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(MAMArchivedSerializerTest); CPPUNIT_TEST(testSerialize); CPPUNIT_TEST_SUITE_END(); public: void testSerialize() { - MAMArchivedSerializer serializer(&serializers); + MAMArchivedSerializer serializer; boost::shared_ptr<MAMArchived> archived(boost::make_shared<MAMArchived>()); archived->setBy("juliet@capulet.lit"); archived->setID("28482-98726-73623"); std::string expectedResult = "<archived by=\"juliet@capulet.lit\" id=\"28482-98726-73623\" xmlns=\"urn:xmpp:mam:0\"/>"; CPPUNIT_ASSERT_EQUAL(expectedResult, serializer.serialize(archived)); } private: FullPayloadSerializerCollection serializers; }; CPPUNIT_TEST_SUITE_REGISTRATION(MAMArchivedSerializerTest); diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp b/Swiften/Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp index cc49be1..7f6cbd9 100644 --- a/Swiften/Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp +++ b/Swiften/Serializer/PayloadSerializers/UnitTest/MAMQuerySerializerTest.cpp @@ -1,63 +1,63 @@ /* * Copyright (c) 2014 Kevin Smith and Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include <boost/smart_ptr/make_shared.hpp> #include <cppunit/extensions/HelperMacros.h> #include <cppunit/extensions/TestFactoryRegistry.h> #include <Swiften/Base/DateTime.h> #include <Swiften/Elements/Delay.h> #include <Swiften/Elements/MAMResult.h> #include <Swiften/Elements/Message.h> #include <Swiften/Serializer/PayloadSerializers/MAMQuerySerializer.h> #include <Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h> using namespace Swift; class MAMQuerySerializerTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(MAMQuerySerializerTest); CPPUNIT_TEST(testSerialize); CPPUNIT_TEST_SUITE_END(); public: void testSerialize() { - MAMQuerySerializer serializer(&serializers); + MAMQuerySerializer serializer; boost::shared_ptr<Form> parameters(boost::make_shared<Form>()); boost::shared_ptr<FormField> fieldType = boost::make_shared<FormField>(FormField::TextSingleType); fieldType->setName("FORM_TYPE"); fieldType->addValue("urn:xmpp:mam:0"); parameters->addField(fieldType); boost::shared_ptr<FormField> fieldStart = boost::make_shared<FormField>(FormField::TextSingleType); fieldStart->setName("start"); fieldStart->addValue("2010-08-07T00:00:00Z"); parameters->addField(fieldStart); boost::shared_ptr<ResultSet> set = boost::make_shared<ResultSet>(); set->setMaxItems(10); boost::shared_ptr<MAMQuery> query(boost::make_shared<MAMQuery>()); query->setQueryID(std::string("id0")); query->setForm(parameters); query->setResultSet(set); std::string expectedResult = "<query queryid=\"id0\" xmlns=\"urn:xmpp:mam:0\">" "<x type=\"form\" xmlns=\"jabber:x:data\">" "<field type=\"text-single\" var=\"FORM_TYPE\">" "<value>urn:xmpp:mam:0</value>" "</field>" "<field type=\"text-single\" var=\"start\">" "<value>2010-08-07T00:00:00Z</value>" "</field>" "</x>" "<set xmlns=\"http://jabber.org/protocol/rsm\">" "<max>10</max>" "</set>" "</query>"; |
Swift