diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-04-11 20:15:20 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-04-18 19:11:42 (GMT) |
commit | 92af1a97f318f7f623df3183e90e7e828fa2eeb9 (patch) | |
tree | 886d66feead5ca3c1d04152b570f7712be4a86c0 /Swiften/Parser/PresenceParser.cpp | |
parent | eda3475756f88098de69d5bea05b328b53d7ec04 (diff) | |
download | swift-92af1a97f318f7f623df3183e90e7e828fa2eeb9.zip swift-92af1a97f318f7f623df3183e90e7e828fa2eeb9.tar.bz2 |
Make parser infrastructure parser aware.
Resolves: #492
Diffstat (limited to 'Swiften/Parser/PresenceParser.cpp')
-rw-r--r-- | Swiften/Parser/PresenceParser.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/Swiften/Parser/PresenceParser.cpp b/Swiften/Parser/PresenceParser.cpp index 845ccf0..867155f 100644 --- a/Swiften/Parser/PresenceParser.cpp +++ b/Swiften/Parser/PresenceParser.cpp @@ -5,6 +5,7 @@ */ #include <iostream> +#include <boost/optional.hpp> #include "Swiften/Parser/PresenceParser.h" @@ -15,31 +16,31 @@ PresenceParser::PresenceParser(PayloadParserFactoryCollection* factories) : } void PresenceParser::handleStanzaAttributes(const AttributeMap& attributes) { - AttributeMap::const_iterator type = attributes.find("type"); - if (type != attributes.end()) { - if (type->second == "unavailable") { + boost::optional<std::string> type = attributes.getAttributeValue("type"); + if (type) { + if (*type == "unavailable") { getStanzaGeneric()->setType(Presence::Unavailable); } - else if (type->second == "probe") { + else if (*type == "probe") { getStanzaGeneric()->setType(Presence::Probe); } - else if (type->second == "subscribe") { + else if (*type == "subscribe") { getStanzaGeneric()->setType(Presence::Subscribe); } - else if (type->second == "subscribed") { + else if (*type == "subscribed") { getStanzaGeneric()->setType(Presence::Subscribed); } - else if (type->second == "unsubscribe") { + else if (*type == "unsubscribe") { getStanzaGeneric()->setType(Presence::Unsubscribe); } - else if (type->second == "unsubscribed") { + else if (*type == "unsubscribed") { getStanzaGeneric()->setType(Presence::Unsubscribed); } - else if (type->second == "error") { + else if (*type == "error") { getStanzaGeneric()->setType(Presence::Error); } else { - std::cerr << "Unknown Presence type: " << type->second << std::endl; + std::cerr << "Unknown Presence type: " << *type << std::endl; getStanzaGeneric()->setType(Presence::Available); } } |