/* * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include #include #include #include #include namespace Swift { template class SWIFTEN_API BlockSerializer : public GenericPayloadSerializer { public: BlockSerializer(std::string tag) : GenericPayloadSerializer(), tag(tag) { } virtual std::string serializePayload(std::shared_ptr payload) const { XMLElement element(tag, "urn:xmpp:blocking"); const std::vector& items = payload->getItems(); for (std::vector::const_iterator i = items.begin(); i != items.end(); ++i) { std::shared_ptr item = std::make_shared("item"); item->setAttribute("jid", *i); element.addNode(item); } return element.serialize(); } private: std::string tag; }; }