summaryrefslogtreecommitdiffstats
blob: 578b0ab5b23768e208af66ee5c153f8d54ef8866 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
 * Copyright (c) 2012 Mateusz Piękos
 * Licensed under the simplified BSD license.
 * See Documentation/Licenses/BSD-simplified.txt for more information.
 */

#include <Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>

namespace Swift {
	std::string WhiteboardSerializer::serializePayload(boost::shared_ptr<WhiteboardPayload> payload) const {
		XMLElement element("wb");
		element.addNode(XMLTextNode::ref(new XMLTextNode(payload->getData())));
		element.setAttribute("type", typeToString(payload->getType()));
		return element.serialize();
	}

	std::string WhiteboardSerializer::typeToString(WhiteboardPayload::Type type) const {
		if(type == WhiteboardPayload::Data) {
			return "";
		} else if (type == WhiteboardPayload::SessionRequest) {
			return "session-request";
		} else if (type == WhiteboardPayload::SessionAccept) {
			return "session-accept";
		} else if (type == WhiteboardPayload::SessionTerminate) {
			return "session-terminate";
		}
	}
}