diff options
Diffstat (limited to 'Swiften/Base/Debug.cpp')
-rw-r--r-- | Swiften/Base/Debug.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Swiften/Base/Debug.cpp b/Swiften/Base/Debug.cpp index b59de35..b4245c3 100644 --- a/Swiften/Base/Debug.cpp +++ b/Swiften/Base/Debug.cpp @@ -1,42 +1,43 @@ /* * Copyright (c) 2015-2016 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include <Swiften/Base/Debug.h> #include <iostream> #include <memory> #include <Swiften/Client/ClientError.h> +#include <Swiften/Client/ClientSession.h> #include <Swiften/Serializer/PayloadSerializer.h> #include <Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h> #include <Swiften/Serializer/XMPPSerializer.h> std::ostream& operator<<(std::ostream& os, const Swift::ClientError& error) { os << "ClientError("; switch(error.getType()) { case Swift::ClientError::UnknownError: os << "UnknownError"; break; case Swift::ClientError::DomainNameResolveError: os << "DomainNameResolveError"; break; case Swift::ClientError::ConnectionError: os << "ConnectionError"; break; case Swift::ClientError::ConnectionReadError: os << "ConnectionReadError"; break; case Swift::ClientError::ConnectionWriteError: os << "ConnectionWriteError"; break; case Swift::ClientError::XMLError: os << "XMLError"; break; case Swift::ClientError::AuthenticationFailedError: os << "AuthenticationFailedError"; break; case Swift::ClientError::CompressionFailedError: os << "CompressionFailedError"; @@ -111,30 +112,79 @@ std::ostream& operator<<(std::ostream& os, const Swift::ClientError& error) { os << "RevocationCheckFailedError"; break; } os << ")"; return os; } std::ostream& operator<<(std::ostream& os, Swift::Element* ele) { using namespace Swift; std::shared_ptr<Element> element = std::shared_ptr<Element>(ele); std::shared_ptr<Payload> payload = std::dynamic_pointer_cast<Payload>(element); if (payload) { FullPayloadSerializerCollection payloadSerializerCollection; PayloadSerializer *serializer = payloadSerializerCollection.getPayloadSerializer(payload); os << "Payload(" << serializer->serialize(payload) << ")"; return os; } std::shared_ptr<ToplevelElement> topLevelElement = std::dynamic_pointer_cast<ToplevelElement>(element); if (topLevelElement) { FullPayloadSerializerCollection payloadSerializerCollection; XMPPSerializer xmppSerializer(&payloadSerializerCollection, ClientStreamType, false); SafeByteArray serialized = xmppSerializer.serializeElement(topLevelElement); os << "TopLevelElement(" << safeByteArrayToString(serialized) << ")"; return os; } os << "Element(Unknown)"; return os; } + +std::ostream& operator<<(std::ostream& os, Swift::ClientSession::State state) { + using CS = Swift::ClientSession; + switch (state) { + case CS::State::Initial: + os << "ClientSession::State::Initial"; + break; + case CS::State::WaitingForStreamStart: + os << "ClientSession::State::WaitingForStreamStart"; + break; + case CS::State::Negotiating: + os << "ClientSession::State::Negotiating"; + break; + case CS::State::Compressing: + os << "ClientSession::State::Compressing"; + break; + case CS::State::WaitingForEncrypt: + os << "ClientSession::State::WaitingForEncrypt"; + break; + case CS::State::Encrypting: + os << "ClientSession::State::Encrypting"; + break; + case CS::State::WaitingForCredentials: + os << "ClientSession::State::WaitingForCredentials"; + break; + case CS::State::Authenticating: + os << "ClientSession::State::Authenticating"; + break; + case CS::State::EnablingSessionManagement: + os << "ClientSession::State::EnablingSessionManagement"; + break; + case CS::State::BindingResource: + os << "ClientSession::State::BindingResource"; + break; + case CS::State::StartingSession: + os << "ClientSession::State::StartingSession"; + break; + case CS::State::Initialized: + os << "ClientSession::State::Initialized"; + break; + case CS::State::Finishing: + os << "ClientSession::State::Finishing"; + break; + case CS::State::Finished: + os << "ClientSession::State::Finished"; + break; + } + return os; +} |