void PresenceParser::handleStanzaAttributes(const AttributeMap& attributes) { boost::optional<std::string> type = attributes.getAttributeValue("type"); if (type) { if (*type == "unavailable") { getStanzaGeneric()->setType(Presence::Unavailable); } else if (*type == "probe") { getStanzaGeneric()->setType(Presence::Probe); } else if (*type == "subscribe") { getStanzaGeneric()->setType(Presence::Subscribe); } else if (*type == "subscribed") { getStanzaGeneric()->setType(Presence::Subscribed); } else if (*type == "unsubscribe") { getStanzaGeneric()->setType(Presence::Unsubscribe); } else if (*type == "unsubscribed") { getStanzaGeneric()->setType(Presence::Unsubscribed); } else if (*type == "error") { getStanzaGeneric()->setType(Presence::Error); } else { std::cerr << "Unknown Presence type: " << *type << std::endl; getStanzaGeneric()->setType(Presence::Available); } } else { getStanzaGeneric()->setType(Presence::Available); } }
void MessageParser::handleStanzaAttributes(const AttributeMap& attributes) { boost::optional<std::string> type = attributes.getAttributeValue("type"); if (type) { if (*type == "chat") { getStanzaGeneric()->setType(Message::Chat); } else if (*type == "error") { getStanzaGeneric()->setType(Message::Error); } else if (*type == "groupchat") { getStanzaGeneric()->setType(Message::Groupchat); } else if (*type == "headline") { getStanzaGeneric()->setType(Message::Headline); } else { getStanzaGeneric()->setType(Message::Normal); } } }
void IQParser::handleStanzaAttributes(const AttributeMap& attributes) { AttributeMap::const_iterator type = attributes.find("type"); if (type != attributes.end()) { if (type->second == "set") { getStanzaGeneric()->setType(IQ::Set); } else if (type->second == "get") { getStanzaGeneric()->setType(IQ::Get); } else if (type->second == "result") { getStanzaGeneric()->setType(IQ::Result); } else if (type->second == "error") { getStanzaGeneric()->setType(IQ::Error); } else { std::cerr << "Unknown IQ type: " << type->second << std::endl; getStanzaGeneric()->setType(IQ::Get); } } }
MessageParser::MessageParser(PayloadParserFactoryCollection* factories) : GenericStanzaParser<Message>(factories) { getStanzaGeneric()->setType(Message::Normal); }