summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-06-20 08:17:59 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-06-20 14:37:51 (GMT)
commit6310bc00ceeb65f0cf6fc0ada9d1b188517d8a76 (patch)
tree42f98c3d4a6d6e01043377bbb07125264527bd0f /Swiften/Parser/PayloadParsers/VCardUpdateParser.cpp
parent9a457c621bd75a9929cc0616b7659dba2945fdac (diff)
downloadswift-6310bc00ceeb65f0cf6fc0ada9d1b188517d8a76.zip
swift-6310bc00ceeb65f0cf6fc0ada9d1b188517d8a76.tar.bz2
Added vcard-temp update parser.
Diffstat (limited to 'Swiften/Parser/PayloadParsers/VCardUpdateParser.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/VCardUpdateParser.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/VCardUpdateParser.cpp b/Swiften/Parser/PayloadParsers/VCardUpdateParser.cpp
new file mode 100644
index 0000000..855f9b0
--- /dev/null
+++ b/Swiften/Parser/PayloadParsers/VCardUpdateParser.cpp
@@ -0,0 +1,26 @@
+#include "Swiften/Parser/PayloadParsers/VCardUpdateParser.h"
+
+namespace Swift {
+
+VCardUpdateParser::VCardUpdateParser() : level_(TopLevel) {
+}
+
+void VCardUpdateParser::handleStartElement(const String& element, const String&, const AttributeMap& attributes) {
+ if (level_ == PayloadLevel) {
+ currentText_ = "";
+ }
+ ++level_;
+}
+
+void VCardUpdateParser::handleEndElement(const String& element, const String&) {
+ --level_;
+ if (level_ == PayloadLevel && element == "photo") {
+ getPayloadInternal()->setPhotoHash(currentText_);
+ }
+}
+
+void VCardUpdateParser::handleCharacterData(const String& text) {
+ currentText_ += text;
+}
+
+}