diff options
Diffstat (limited to 'Swiften/Parser/PayloadParsers/ChatStateParser.cpp')
| -rw-r--r-- | Swiften/Parser/PayloadParsers/ChatStateParser.cpp | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/ChatStateParser.cpp b/Swiften/Parser/PayloadParsers/ChatStateParser.cpp new file mode 100644 index 0000000..52d860a --- /dev/null +++ b/Swiften/Parser/PayloadParsers/ChatStateParser.cpp @@ -0,0 +1,35 @@ +#include "Swiften/Parser/PayloadParsers/ChatStateParser.h" + +namespace Swift { + +ChatStateParser::ChatStateParser() : level_(0) { +} + +void ChatStateParser::handleStartElement(const String& element, const String&, const AttributeMap&) { +	if (level_ == 0) { +		ChatState::ChatStateType state = ChatState::Active; +		if (element == "active") { +			state = ChatState::Active; +		} else if (element == "composing") { +			state = ChatState::Composing; +		} else if (element == "inactive") { +			state = ChatState::Inactive; +		} else if (element == "paused") { +			state = ChatState::Paused; +		} else if (element == "gone") { +			state = ChatState::Gone; +		} +		getPayloadInternal()->setChatState(state); +	} +	++level_; +} + +void ChatStateParser::handleEndElement(const String&, const String&) { +	--level_; +} + +void ChatStateParser::handleCharacterData(const String&) { + +} + +}  | 
 Swift