diff --git a/include/Swiften/Serializer/PayloadSerializers/GatewayPayloadSerializer.cpp b/include/Swiften/Serializer/PayloadSerializers/GatewayPayloadSerializer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8a1293769b8c84e9d50ca1f1b824462229dc424f --- /dev/null +++ b/include/Swiften/Serializer/PayloadSerializers/GatewayPayloadSerializer.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2011 Jan Kaluza + * Licensed under the Simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include +#include +#include +#include +#include +#include + +namespace Swift { + +GatewayPayloadSerializer::GatewayPayloadSerializer() + : GenericPayloadSerializer() { +} + +std::string GatewayPayloadSerializer::serializePayload(boost::shared_ptr payload) const { + XMLElement query("query", "jabber:iq:gateway"); + + if (!payload->getJID().isValid()) { + boost::shared_ptr jid(new XMLElement("jid", "", payload->getJID().toBare().toString())); + query.addNode(jid); + } + + if (!payload->getDesc().empty()) { + boost::shared_ptr desc(new XMLElement("desc", "", payload->getDesc())); + query.addNode(desc); + } + + if (!payload->getPrompt().empty()) { + boost::shared_ptr prompt(new XMLElement("prompt", "", payload->getPrompt())); + query.addNode(prompt); + } + + return query.serialize(); +} + +}