From b113ae300efe5dc17f148a06df09062546bf54ee Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Tue, 6 Sep 2022 20:05:34 +0200 Subject: Add QXmppError holding a description and std::any --- src/base/QXmppError.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/base/QXmppError.cpp (limited to 'src/base/QXmppError.cpp') diff --git a/src/base/QXmppError.cpp b/src/base/QXmppError.cpp new file mode 100644 index 00000000..80578c0d --- /dev/null +++ b/src/base/QXmppError.cpp @@ -0,0 +1,75 @@ +// SPDX-FileCopyrightText: 2022 Linus Jahn +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "QXmppError.h" + +#include "QXmppStanza.h" + +#include +#include + +/// +/// \class QXmppError +/// +/// Generic error class holding a description and a more specific error object. The specific error +/// usually is something like a QXmppStanza::Error or an enum. +/// +/// \since QXmpp 1.5 +/// + +/// +/// \var QXmppError::description +/// +/// Human readable description of the error. +/// + +/// +/// \var QXmppError::error +/// +/// More specific details on the error. It may be of any type. Functions returning QXmppError +/// should tell you which types are used. +/// + +/// +/// Returns whether the error is a QNetworkReply::NetworkError. +/// +bool QXmppError::isFileError() const +{ + return holdsType(); +} + +/// +/// Returns whether the error is a QNetworkReply::NetworkError. +/// +bool QXmppError::isNetworkError() const +{ + return holdsType(); +} + +/// +/// Returns whether the error is a QXmppStanza::Error. +/// +bool QXmppError::isStanzaError() const +{ + return holdsType(); +} + +/// +/// \fn QXmppError::holdsType() +/// +/// Returns true if the error is of type T. +/// + +/// +/// \fn QXmppError::value() +/// +/// Copies the value if it has type T, returns empty optional otherwise. +/// + +/// +/// \fn QXmppError::takeValue() +/// +/// Moves out the value if it has type T, leaves the stored error intact and returns an empty +/// optional otherwise. +/// -- cgit v1.2.3