summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Base/Debug.cpp')
-rw-r--r--Swiften/Base/Debug.cpp50
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;
+}