diff options
author | Tobias Markmann <tm@ayena.de> | 2016-08-05 07:08:10 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-08-05 07:08:10 (GMT) |
commit | a0f588cad07d1bc31725ac63e38ac25c2530d7ce (patch) | |
tree | 2d358d0b8365bc33749ef6aa375f78b5a721c0bf /Swiften/Base/LogSerializers.cpp | |
parent | c135724a9daa6e3dca7bf75abc9c4cabdc585e88 (diff) | |
download | swift-a0f588cad07d1bc31725ac63e38ac25c2530d7ce.zip swift-a0f588cad07d1bc31725ac63e38ac25c2530d7ce.tar.bz2 |
Add a debugging helper for serializing Swiften types to ostream
Test-Information:
Tested on OS X 10.11.6.
Change-Id: I9ecb60f5c3956d52fd42acd1b0d85725277efc51
Diffstat (limited to 'Swiften/Base/LogSerializers.cpp')
-rw-r--r-- | Swiften/Base/LogSerializers.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Swiften/Base/LogSerializers.cpp b/Swiften/Base/LogSerializers.cpp new file mode 100644 index 0000000..ccc8437 --- /dev/null +++ b/Swiften/Base/LogSerializers.cpp @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + +#include <Swiften/Base/LogSerializers.h> + +#include <Swiften/Elements/Presence.h> + +namespace Swift { + +std::ostream& operator<<(std::ostream& stream, const Presence& presence) { + std::string typeString; + switch (presence.getType()) { + case Presence::Available: + typeString = "Available"; + break; + case Presence::Error: + typeString = "Error"; + break; + case Presence::Probe: + typeString = "Probe"; + break; + case Presence::Subscribe: + typeString = "Subscribe"; + break; + case Presence::Subscribed: + typeString = "Subscribed"; + break; + case Presence::Unavailable: + typeString = "Unavailable"; + break; + case Presence::Unsubscribe: + typeString = "Unsubscribe"; + break; + case Presence::Unsubscribed: + typeString = "Unsubscribed"; + break; + } + + std::string showTypeString; + switch (presence.getShow()) { + case StatusShow::Online: + showTypeString = "Online"; + break; + case StatusShow::Away: + showTypeString = "Away"; + break; + case StatusShow::FFC: + showTypeString = "FFC"; + break; + case StatusShow::DND: + showTypeString = "DND"; + break; + case StatusShow::XA: + showTypeString = "XA"; + break; + case StatusShow::None: + showTypeString = "None"; + break; + } + + stream << "Presence(" << "from: " << presence.getFrom() << ", to: " << presence.getTo() << ", type: " << typeString << ", status: " << showTypeString << ", priority: " << presence.getPriority() << ", '" << presence.getStatus() << "'" << " )"; + return stream; +} + +}; |