summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-08-18 20:08:34 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-08-18 20:08:34 (GMT)
commite1f9cdc38b600d930760ed0e0b867ab739127f5a (patch)
tree928b9ad82c1341640631035ffa28fdf01dc4dcc5 /Swiften/Serializer
parent6fd3078f8f512c74bfc54c3d31d6446098088a69 (diff)
downloadswift-contrib-e1f9cdc38b600d930760ed0e0b867ab739127f5a.zip
swift-contrib-e1f9cdc38b600d930760ed0e0b867ab739127f5a.tar.bz2
Added command parser.
Diffstat (limited to 'Swiften/Serializer')
-rw-r--r--Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp14
-rw-r--r--Swiften/Serializer/PayloadSerializers/CommandSerializer.h3
-rw-r--r--Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp2
3 files changed, 8 insertions, 11 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp b/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp
index 3ac0c2c..eb45ca2 100644
--- a/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp
+++ b/Swiften/Serializer/PayloadSerializers/CommandSerializer.cpp
@@ -13,10 +13,11 @@
#include "Swiften/Serializer/XML/XMLTextNode.h"
#include "Swiften/Serializer/XML/XMLRawTextNode.h"
#include "Swiften/Serializer/PayloadSerializerCollection.h"
+#include "Swiften/Serializer/PayloadSerializers/FormSerializer.h"
namespace Swift {
-CommandSerializer::CommandSerializer(PayloadSerializerCollection* serializers) : serializers(serializers) {
+CommandSerializer::CommandSerializer() {
}
String CommandSerializer::serializePayload(boost::shared_ptr<Command> command) const {
@@ -27,7 +28,7 @@ String CommandSerializer::serializePayload(boost::shared_ptr<Command> command) c
commandElement.setAttribute("sessionid", command->getSessionID());
}
- String action = actionToString(command->getPerformedAction());
+ String action = actionToString(command->getAction());
if (!action.isEmpty()) {
commandElement.setAttribute("action", action);
}
@@ -72,12 +73,9 @@ String CommandSerializer::serializePayload(boost::shared_ptr<Command> command) c
commandElement.addNode(noteElement);
}
- boost::shared_ptr<Payload> payload = command->getPayload();
- if (payload) {
- PayloadSerializer* serializer = serializers->getPayloadSerializer(payload);
- if (serializer) {
- commandElement.addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(serializer->serialize(payload))));
- }
+ Form::ref form = command->getForm();
+ if (form) {
+ commandElement.addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(FormSerializer().serialize(form))));
}
return commandElement.serialize();
}
diff --git a/Swiften/Serializer/PayloadSerializers/CommandSerializer.h b/Swiften/Serializer/PayloadSerializers/CommandSerializer.h
index 6a0c067..4b71aea 100644
--- a/Swiften/Serializer/PayloadSerializers/CommandSerializer.h
+++ b/Swiften/Serializer/PayloadSerializers/CommandSerializer.h
@@ -14,12 +14,11 @@ namespace Swift {
class CommandSerializer : public GenericPayloadSerializer<Command> {
public:
- CommandSerializer(PayloadSerializerCollection* serializers);
+ CommandSerializer();
virtual String serializePayload(boost::shared_ptr<Command>) const;
private:
- PayloadSerializerCollection* serializers;
String actionToString(Command::Action action) const;
};
}
diff --git a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp
index 04615a2..275cbf1 100644
--- a/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp
+++ b/Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.cpp
@@ -61,7 +61,7 @@ FullPayloadSerializerCollection::FullPayloadSerializerCollection() {
serializers_.push_back(new DelaySerializer());
serializers_.push_back(new FormSerializer());
serializers_.push_back(new PrivateStorageSerializer(this));
- serializers_.push_back(new CommandSerializer(this));
+ serializers_.push_back(new CommandSerializer());
foreach(PayloadSerializer* serializer, serializers_) {
addSerializer(serializer);
}