summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-11 15:51:42 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-11 15:56:10 (GMT)
commit1d6d6588e3affc9a736b29062107ca82ad6a5644 (patch)
tree54a96dd3f652df321ed5017148811d241baa1dd8 /Swiften/Parser/PayloadParsers/RawXMLPayloadParser.cpp
parente1a2d258479cd915e8c30c5c996b58da3da3e55d (diff)
downloadswift-1d6d6588e3affc9a736b29062107ca82ad6a5644.zip
swift-1d6d6588e3affc9a736b29062107ca82ad6a5644.tar.bz2
Added Raw XML payload parser & serializer.
Diffstat (limited to 'Swiften/Parser/PayloadParsers/RawXMLPayloadParser.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/RawXMLPayloadParser.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/RawXMLPayloadParser.cpp b/Swiften/Parser/PayloadParsers/RawXMLPayloadParser.cpp
new file mode 100644
index 0000000..c49af3e
--- /dev/null
+++ b/Swiften/Parser/PayloadParsers/RawXMLPayloadParser.cpp
@@ -0,0 +1,26 @@
+#include "Swiften/Parser/PayloadParsers/RawXMLPayloadParser.h"
+#include "Swiften/Parser/SerializingParser.h"
+
+namespace Swift {
+
+RawXMLPayloadParser::RawXMLPayloadParser() : level_(0) {
+}
+
+void RawXMLPayloadParser::handleStartElement(const String& element, const String& ns, const AttributeMap& attributes) {
+ ++level_;
+ serializingParser_.handleStartElement(element, ns, attributes);
+}
+
+void RawXMLPayloadParser::handleEndElement(const String& element, const String& ns) {
+ serializingParser_.handleEndElement(element, ns);
+ --level_;
+ if (level_ == 0) {
+ getPayloadInternal()->setRawXML(serializingParser_.getResult());
+ }
+}
+
+void RawXMLPayloadParser::handleCharacterData(const String& data) {
+ serializingParser_.handleCharacterData(data);
+}
+
+}