diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-11-22 16:46:37 (GMT) |
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-11-22 16:54:51 (GMT) |
| commit | 497dd9b099e5810057ebcd8a3f6755819cfecdef (patch) | |
| tree | a65ecc29c3f86d2ed6b6050d4650708abceafa3d /Swiften/Parser | |
| parent | d9ca66fa828e99ec5b4067d954c97d882b9ab8fe (diff) | |
| download | swift-497dd9b099e5810057ebcd8a3f6755819cfecdef.zip swift-497dd9b099e5810057ebcd8a3f6755819cfecdef.tar.bz2 | |
Added auth success value support.
Diffstat (limited to 'Swiften/Parser')
| -rw-r--r-- | Swiften/Parser/AuthSuccessParser.cpp | 24 | ||||
| -rw-r--r-- | Swiften/Parser/AuthSuccessParser.h | 16 | ||||
| -rw-r--r-- | Swiften/Parser/SConscript | 1 |
3 files changed, 36 insertions, 5 deletions
diff --git a/Swiften/Parser/AuthSuccessParser.cpp b/Swiften/Parser/AuthSuccessParser.cpp new file mode 100644 index 0000000..2dc2aa2 --- /dev/null +++ b/Swiften/Parser/AuthSuccessParser.cpp @@ -0,0 +1,24 @@ +#include "Swiften/Parser/AuthSuccessParser.h" +#include "Swiften/StringCodecs/Base64.h" + +namespace Swift { + +AuthSuccessParser::AuthSuccessParser() : GenericElementParser<AuthSuccess>(), depth(0) { +} + +void AuthSuccessParser::handleStartElement(const String&, const String&, const AttributeMap&) { + ++depth; +} + +void AuthSuccessParser::handleEndElement(const String&, const String&) { + --depth; + if (depth == 0) { + getElementGeneric()->setValue(Base64::decode(text)); + } +} + +void AuthSuccessParser::handleCharacterData(const String& text) { + this->text += text; +} + +} diff --git a/Swiften/Parser/AuthSuccessParser.h b/Swiften/Parser/AuthSuccessParser.h index bb6515d..5d987c5 100644 --- a/Swiften/Parser/AuthSuccessParser.h +++ b/Swiften/Parser/AuthSuccessParser.h @@ -1,14 +1,20 @@ -#ifndef SWIFTEN_AUTHSUCCESSPARSER_H -#define SWIFTEN_AUTHSUCCESSPARSER_H +#pragma once #include "Swiften/Parser/GenericElementParser.h" #include "Swiften/Elements/AuthSuccess.h" +#include "Swiften/Base/String.h" namespace Swift { class AuthSuccessParser : public GenericElementParser<AuthSuccess> { public: - AuthSuccessParser() : GenericElementParser<AuthSuccess>() {} + AuthSuccessParser(); + + virtual void handleStartElement(const String&, const String& ns, const AttributeMap&); + virtual void handleEndElement(const String&, const String& ns); + virtual void handleCharacterData(const String&); + + private: + int depth; + String text; }; } - -#endif diff --git a/Swiften/Parser/SConscript b/Swiften/Parser/SConscript index d04712c..1e1dcd8 100644 --- a/Swiften/Parser/SConscript +++ b/Swiften/Parser/SConscript @@ -1,56 +1,57 @@ Import("swiften_env") myenv = swiften_env.Clone() myenv.MergeFlags(swiften_env["BOOST_FLAGS"]) myenv.MergeFlags(swiften_env.get("LIBXML_FLAGS", "")) myenv.MergeFlags(swiften_env.get("EXPAT_FLAGS", "")) sources = [ "AuthRequestParser.cpp", "AuthChallengeParser.cpp", + "AuthSuccessParser.cpp", "AuthResponseParser.cpp", "CompressParser.cpp", "ElementParser.cpp", "IQParser.cpp", "MessageParser.cpp", "PayloadParser.cpp", "PayloadParserFactory.cpp", "PayloadParserFactoryCollection.cpp", "PayloadParsers/BodyParser.cpp", "PayloadParsers/DiscoInfoParser.cpp", "PayloadParsers/ErrorParser.cpp", "PayloadParsers/FullPayloadParserFactoryCollection.cpp", "PayloadParsers/PriorityParser.cpp", "PayloadParsers/PrivateStorageParser.cpp", "PayloadParsers/RawXMLPayloadParser.cpp", "PayloadParsers/ResourceBindParser.cpp", "PayloadParsers/RosterParser.cpp", "PayloadParsers/SecurityLabelParser.cpp", "PayloadParsers/SecurityLabelsCatalogParser.cpp", "PayloadParsers/SoftwareVersionParser.cpp", "PayloadParsers/StorageParser.cpp", "PayloadParsers/StatusParser.cpp", "PayloadParsers/StatusShowParser.cpp", "PayloadParsers/VCardParser.cpp", "PayloadParsers/VCardUpdateParser.cpp", "PlatformXMLParserFactory.cpp", "PresenceParser.cpp", "SerializingParser.cpp", "StanzaParser.cpp", "StreamFeaturesParser.cpp", "XMLParser.cpp", "XMLParserClient.cpp", "XMLParserFactory.cpp", "XMPPParser.cpp", "XMPPParserClient.cpp", ] if myenv.get("HAVE_EXPAT", 0) : myenv.Append(CPPDEFINES = "HAVE_EXPAT") sources += ["ExpatParser.cpp"] if myenv.get("HAVE_LIBXML", 0) : myenv.Append(CPPDEFINES = "HAVE_LIBXML") sources += ["LibXMLParser.cpp"] objects = myenv.StaticObject(sources) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) |
Swift