summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Piekos <mateuszpiekos@gmail.com>2012-06-12 10:52:03 (GMT)
committerMateusz Piekos <mateuszpiekos@gmail.com>2012-06-12 10:52:03 (GMT)
commitedd726abb1d0f7532218efbb8067a75a313e9e98 (patch)
tree7eec4f7912a59bb9a383a61c2c96616d5b5847b6 /Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.cpp
parent6e9fb4e4a3aeee8c40617a4dda6e5e0892ceebad (diff)
downloadswift-contrib-edd726abb1d0f7532218efbb8067a75a313e9e98.zip
swift-contrib-edd726abb1d0f7532218efbb8067a75a313e9e98.tar.bz2
Improved whiteboard session handling
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.cpp')
-rw-r--r--Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.cpp b/Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.cpp
new file mode 100644
index 0000000..578b0ab
--- /dev/null
+++ b/Swiften/Serializer/PayloadSerializers/WhiteboardSerializer.cpp
@@ -0,0 +1,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";
+ }
+ }
+}