diff options
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/QXmppClient.h | 2 | ||||
| -rw-r--r-- | src/client/QXmppDiscoveryManager.h | 6 | ||||
| -rw-r--r-- | src/client/QXmppEntityTimeManager.h | 4 | ||||
| -rw-r--r-- | src/client/QXmppHttpUploadManager.cpp | 4 | ||||
| -rw-r--r-- | src/client/QXmppPep_p.h | 9 | ||||
| -rw-r--r-- | src/client/QXmppPubSubManager.cpp | 13 | ||||
| -rw-r--r-- | src/client/QXmppPubSubManager.h | 29 | ||||
| -rw-r--r-- | src/client/QXmppRosterManager.cpp | 7 | ||||
| -rw-r--r-- | src/client/QXmppRosterManager.h | 4 | ||||
| -rw-r--r-- | src/client/QXmppUploadRequestManager.cpp | 5 | ||||
| -rw-r--r-- | src/client/QXmppUploadRequestManager.h | 8 | ||||
| -rw-r--r-- | src/client/QXmppUserLocationManager.h | 5 | ||||
| -rw-r--r-- | src/client/QXmppUserTuneManager.h | 5 |
13 files changed, 50 insertions, 51 deletions
diff --git a/src/client/QXmppClient.h b/src/client/QXmppClient.h index 5cef5fe3..ca33afb6 100644 --- a/src/client/QXmppClient.h +++ b/src/client/QXmppClient.h @@ -91,7 +91,7 @@ class QXMPP_EXPORT QXmppClient : public QXmppLoggable public: using IqResult = std::variant<QDomElement, QXmppError>; - using EmptyResult = std::variant<QXmpp::Success, QXmppStanza::Error>; + using EmptyResult = std::variant<QXmpp::Success, QXmppError>; /// An enumeration for type of error. /// Error could come due a TCP socket or XML stream or due to various stanzas. diff --git a/src/client/QXmppDiscoveryManager.h b/src/client/QXmppDiscoveryManager.h index 56f6dfc4..10744a0d 100644 --- a/src/client/QXmppDiscoveryManager.h +++ b/src/client/QXmppDiscoveryManager.h @@ -1,4 +1,5 @@ // SPDX-FileCopyrightText: 2010 Manjeet Dahiya <manjeetdahiya@gmail.com> +// SPDX-FileCopyrightText: 2021 Linus Jahn <lnj@kaidan.im> // // SPDX-License-Identifier: LGPL-2.1-or-later @@ -14,6 +15,7 @@ class QXmppTask; class QXmppDataForm; class QXmppDiscoveryIq; class QXmppDiscoveryManagerPrivate; +class QXmppError; /// \brief The QXmppDiscoveryManager class makes it possible to discover information /// about other entities as defined by \xep{0030}: Service Discovery. @@ -33,8 +35,8 @@ public: QString requestInfo(const QString &jid, const QString &node = QString()); QString requestItems(const QString &jid, const QString &node = QString()); - using InfoResult = std::variant<QXmppDiscoveryIq, QXmppStanza::Error>; - using ItemsResult = std::variant<QList<QXmppDiscoveryIq::Item>, QXmppStanza::Error>; + using InfoResult = std::variant<QXmppDiscoveryIq, QXmppError>; + using ItemsResult = std::variant<QList<QXmppDiscoveryIq::Item>, QXmppError>; QXmppTask<InfoResult> requestDiscoInfo(const QString &jid, const QString &node = {}); QXmppTask<ItemsResult> requestDiscoItems(const QString &jid, const QString &node = {}); diff --git a/src/client/QXmppEntityTimeManager.h b/src/client/QXmppEntityTimeManager.h index 81c6fb45..3b090feb 100644 --- a/src/client/QXmppEntityTimeManager.h +++ b/src/client/QXmppEntityTimeManager.h @@ -1,4 +1,5 @@ // SPDX-FileCopyrightText: 2010 Manjeet Dahiya <manjeetdahiya@gmail.com> +// SPDX-FileCopyrightText: 2022 Linus Jahn <lnj@kaidan.im> // // SPDX-License-Identifier: LGPL-2.1-or-later @@ -12,6 +13,7 @@ template<class T> class QXmppTask; class QXmppEntityTimeIq; +class QXmppError; /// /// \brief The QXmppEntityTimeManager class provided the functionality to get @@ -26,7 +28,7 @@ class QXMPP_EXPORT QXmppEntityTimeManager : public QXmppClientExtension public: QString requestTime(const QString &jid); - using EntityTimeResult = std::variant<QXmppEntityTimeIq, QXmppStanza::Error>; + using EntityTimeResult = std::variant<QXmppEntityTimeIq, QXmppError>; QXmppTask<EntityTimeResult> requestEntityTime(const QString &jid); /// \cond diff --git a/src/client/QXmppHttpUploadManager.cpp b/src/client/QXmppHttpUploadManager.cpp index 35eedf80..c5b3fe89 100644 --- a/src/client/QXmppHttpUploadManager.cpp +++ b/src/client/QXmppHttpUploadManager.cpp @@ -307,8 +307,8 @@ std::shared_ptr<QXmppHttpUpload> QXmppHttpUploadManager::uploadFile(std::unique_ return; } - if (std::holds_alternative<QXmppStanza::Error>(result)) { - upload->d->reportError(std::get<QXmppStanza::Error>(std::move(result))); + if (std::holds_alternative<QXmppError>(result)) { + upload->d->reportError(std::get<QXmppError>(std::move(result))); upload->d->reportFinished(); } else { auto slot = std::get<QXmppHttpUploadSlotIq>(std::move(result)); diff --git a/src/client/QXmppPep_p.h b/src/client/QXmppPep_p.h index aafc6520..ea7f0440 100644 --- a/src/client/QXmppPep_p.h +++ b/src/client/QXmppPep_p.h @@ -8,23 +8,22 @@ namespace QXmpp::Private::Pep { template<typename T> -using GetResult = std::variant<T, QXmppStanza::Error>; -using PublishResult = std::variant<QString, QXmppStanza::Error>; +using GetResult = std::variant<T, QXmppError>; +using PublishResult = std::variant<QString, QXmppError>; template<typename ItemT> inline QXmppTask<GetResult<ItemT>> request(QXmppPubSubManager *pubSub, const QString &jid, const QString &nodeName, QObject *parent) { using PubSub = QXmppPubSubManager; - using Error = QXmppStanza::Error; auto process = [](PubSub::ItemsResult<ItemT> &&result) -> GetResult<ItemT> { if (const auto itemsResult = std::get_if<PubSub::Items<ItemT>>(&result)) { if (!itemsResult->items.isEmpty()) { return itemsResult->items.takeFirst(); } - return Error(Error::Cancel, Error::ItemNotFound, QStringLiteral("User has no published items.")); + return QXmppError { QStringLiteral("User has no published items."), {} }; } else { - return std::get<Error>(result); + return std::get<QXmppError>(std::move(result)); } }; return chain<GetResult<ItemT>>(pubSub->requestItems<ItemT>(jid, nodeName), parent, process); diff --git a/src/client/QXmppPubSubManager.cpp b/src/client/QXmppPubSubManager.cpp index a10fc25b..18ad9d7a 100644 --- a/src/client/QXmppPubSubManager.cpp +++ b/src/client/QXmppPubSubManager.cpp @@ -596,12 +596,7 @@ QXmppTask<QXmppPubSubManager::OptionsResult> QXmppPubSubManager::requestSubscrib return *options; } } - - // "real" stanza errors are already handled - using Error = QXmppStanza::Error; - return Error(Error::Cancel, - Error::Condition::InternalServerError, - QStringLiteral("Server returned invalid data form.")); + return QXmppError { QStringLiteral("Server returned invalid data form."), {} }; }); } @@ -655,8 +650,6 @@ QXmppTask<QXmppPubSubManager::Result> QXmppPubSubManager::setSubscribeOptions(co /// QXmppTask<QXmppPubSubManager::NodeConfigResult> QXmppPubSubManager::requestNodeConfiguration(const QString &service, const QString &nodeName) { - using Error = QXmppStanza::Error; - PubSubIq request; request.setType(QXmppIq::Get); request.setTo(service); @@ -669,9 +662,9 @@ QXmppTask<QXmppPubSubManager::NodeConfigResult> QXmppPubSubManager::requestNodeC if (const auto config = QXmppPubSubNodeConfig::fromDataForm(*dataForm)) { return *config; } - return Error(Error::Cancel, Error::UndefinedCondition, QStringLiteral("Server returned invalid data form.")); + return QXmppError { QStringLiteral("Server returned invalid data form."), {} }; } - return Error(Error::Cancel, Error::UndefinedCondition, QStringLiteral("Server returned no data form.")); + return QXmppError { QStringLiteral("Server returned no data form."), {} }; }); } diff --git a/src/client/QXmppPubSubManager.h b/src/client/QXmppPubSubManager.h index 4e5ab9f8..73a5b4d4 100644 --- a/src/client/QXmppPubSubManager.h +++ b/src/client/QXmppPubSubManager.h @@ -52,21 +52,21 @@ public: std::optional<QXmppResultSetReply> continuation; }; - using Result = std::variant<QXmpp::Success, QXmppStanza::Error>; - using FeaturesResult = std::variant<QVector<QString>, InvalidServiceType, QXmppStanza::Error>; - using NodesResult = std::variant<QVector<QString>, QXmppStanza::Error>; - using InstantNodeResult = std::variant<QString, QXmppStanza::Error>; + using Result = std::variant<QXmpp::Success, QXmppError>; + using FeaturesResult = std::variant<QVector<QString>, InvalidServiceType, QXmppError>; + using NodesResult = std::variant<QVector<QString>, QXmppError>; + using InstantNodeResult = std::variant<QString, QXmppError>; template<typename T> - using ItemResult = std::variant<T, QXmppStanza::Error>; + using ItemResult = std::variant<T, QXmppError>; template<typename T> - using ItemsResult = std::variant<Items<T>, QXmppStanza::Error>; - using ItemIdsResult = std::variant<QVector<QString>, QXmppStanza::Error>; - using PublishItemResult = std::variant<QString, QXmppStanza::Error>; - using PublishItemsResult = std::variant<QVector<QString>, QXmppStanza::Error>; - using SubscriptionsResult = std::variant<QVector<QXmppPubSubSubscription>, QXmppStanza::Error>; - using AffiliationsResult = std::variant<QVector<QXmppPubSubAffiliation>, QXmppStanza::Error>; - using OptionsResult = std::variant<QXmppPubSubSubscribeOptions, QXmppStanza::Error>; - using NodeConfigResult = std::variant<QXmppPubSubNodeConfig, QXmppStanza::Error>; + using ItemsResult = std::variant<Items<T>, QXmppError>; + using ItemIdsResult = std::variant<QVector<QString>, QXmppError>; + using PublishItemResult = std::variant<QString, QXmppError>; + using PublishItemsResult = std::variant<QVector<QString>, QXmppError>; + using SubscriptionsResult = std::variant<QVector<QXmppPubSubSubscription>, QXmppError>; + using AffiliationsResult = std::variant<QVector<QXmppPubSubAffiliation>, QXmppError>; + using OptionsResult = std::variant<QXmppPubSubSubscribeOptions, QXmppError>; + using NodeConfigResult = std::variant<QXmppPubSubNodeConfig, QXmppError>; QXmppPubSubManager(); ~QXmppPubSubManager(); @@ -175,13 +175,12 @@ QXmppTask<QXmppPubSubManager::ItemResult<T>> QXmppPubSubManager::requestItem(con const QString &itemId) { using namespace QXmpp::Private; - using Error = QXmppStanza::Error; return chainIq(client()->sendIq(requestItemsIq(jid, nodeName, { itemId })), this, [](PubSubIq<T> &&iq) -> ItemResult<T> { if (!iq.items().isEmpty()) { return iq.items().constFirst(); } - return Error(Error::Cancel, Error::ItemNotFound, QStringLiteral("No such item has been found.")); + return QXmppError { QStringLiteral("No such item has been found."), {} }; }); } diff --git a/src/client/QXmppRosterManager.cpp b/src/client/QXmppRosterManager.cpp index 87ebbd26..d3efadb4 100644 --- a/src/client/QXmppRosterManager.cpp +++ b/src/client/QXmppRosterManager.cpp @@ -14,6 +14,8 @@ #include <QDomElement> +using namespace QXmpp::Private; + /// /// \fn QXmppRosterManager::subscriptionRequestReceived /// @@ -307,9 +309,8 @@ QXmppTask<QXmppRosterManager::Result> QXmppRosterManager::renameRosterItem(const { using Error = QXmppStanza::Error; if (!d->entries.contains(bareJid)) { - return QXmpp::Private::makeReadyTask<Result>( - Error(Error::Modify, Error::ItemNotFound, - QStringLiteral("The roster doesn't contain this user."))); + return makeReadyTask<Result>( + QXmppError { QStringLiteral("The roster doesn't contain this user."), {} }); } auto item = d->entries.value(bareJid); diff --git a/src/client/QXmppRosterManager.h b/src/client/QXmppRosterManager.h index f3629342..654de6eb 100644 --- a/src/client/QXmppRosterManager.h +++ b/src/client/QXmppRosterManager.h @@ -57,8 +57,8 @@ class QXMPP_EXPORT QXmppRosterManager : public QXmppClientExtension Q_OBJECT public: - /// Empty result containing QXmpp::Success or a QXmppStanza::Error - using Result = std::variant<QXmpp::Success, QXmppStanza::Error>; + /// Empty result containing QXmpp::Success or a QXmppError + using Result = std::variant<QXmpp::Success, QXmppError>; QXmppRosterManager(QXmppClient *stream); ~QXmppRosterManager() override; diff --git a/src/client/QXmppUploadRequestManager.cpp b/src/client/QXmppUploadRequestManager.cpp index 4a45d86b..0e20a81c 100644 --- a/src/client/QXmppUploadRequestManager.cpp +++ b/src/client/QXmppUploadRequestManager.cpp @@ -236,9 +236,8 @@ auto QXmppUploadRequestManager::requestSlot(const QString &fileName, const QString &uploadService) -> QXmppTask<SlotResult> { if (!serviceFound() && uploadService.isEmpty()) { - using Error = QXmppStanza::Error; - const auto errorMessage = QStringLiteral("Couldn't request upload slot: No service found."); - return makeReadyTask(SlotResult(Error(Error::Cancel, Error::FeatureNotImplemented, errorMessage))); + return makeReadyTask(SlotResult(QXmppError { + QStringLiteral("Couldn't request upload slot: No service found."), {} })); } QXmppHttpUploadRequestIq iq; diff --git a/src/client/QXmppUploadRequestManager.h b/src/client/QXmppUploadRequestManager.h index e5ed752c..0cda7a55 100644 --- a/src/client/QXmppUploadRequestManager.h +++ b/src/client/QXmppUploadRequestManager.h @@ -5,7 +5,8 @@ #ifndef QXMPPUPLOADREQUESTMANAGER_H #define QXMPPUPLOADREQUESTMANAGER_H -#include <QXmppClientExtension.h> +#include "QXmppError.h" +#include "QXmppClientExtension.h" #include <variant> @@ -20,10 +21,11 @@ class QXmppHttpUploadSlotIq; class QXmppUploadServicePrivate; class QXmppUploadRequestManagerPrivate; +/// /// \brief QXmppUploadService represents an HTTP File Upload service. /// /// It is used to store the JID and maximum file size for uploads. - +/// class QXMPP_EXPORT QXmppUploadService { public: @@ -97,7 +99,7 @@ public: const QMimeType &mimeType, const QString &uploadService = QString()); - using SlotResult = std::variant<QXmppHttpUploadSlotIq, QXmppStanza::Error>; + using SlotResult = std::variant<QXmppHttpUploadSlotIq, QXmppError>; QXmppTask<SlotResult> requestSlot(const QFileInfo &file, const QString &uploadService = {}); QXmppTask<SlotResult> requestSlot(const QFileInfo &file, diff --git a/src/client/QXmppUserLocationManager.h b/src/client/QXmppUserLocationManager.h index f9db4bc1..6d96e170 100644 --- a/src/client/QXmppUserLocationManager.h +++ b/src/client/QXmppUserLocationManager.h @@ -7,6 +7,7 @@ #define QXMPPUSERLOCATIONMANAGER_H #include "QXmppClientExtension.h" +#include "QXmppError.h" #include "QXmppPubSubEventHandler.h" #include <variant> @@ -21,8 +22,8 @@ class QXMPP_EXPORT QXmppUserLocationManager : public QXmppClientExtension, publi public: using Item = QXmppGeolocItem; - using GetResult = std::variant<Item, QXmppStanza::Error>; - using PublishResult = std::variant<QString, QXmppStanza::Error>; + using GetResult = std::variant<Item, QXmppError>; + using PublishResult = std::variant<QString, QXmppError>; QXmppUserLocationManager(); diff --git a/src/client/QXmppUserTuneManager.h b/src/client/QXmppUserTuneManager.h index 90bc2d25..c1cbc795 100644 --- a/src/client/QXmppUserTuneManager.h +++ b/src/client/QXmppUserTuneManager.h @@ -6,6 +6,7 @@ #define QXMPPUSERTUNEMANAGER_H #include "QXmppClientExtension.h" +#include "QXmppError.h" #include "QXmppPubSubEventHandler.h" #include <variant> @@ -20,8 +21,8 @@ class QXMPP_EXPORT QXmppUserTuneManager : public QXmppClientExtension, public QX public: using Item = QXmppTuneItem; - using GetResult = std::variant<Item, QXmppStanza::Error>; - using PublishResult = std::variant<QString, QXmppStanza::Error>; + using GetResult = std::variant<Item, QXmppError>; + using PublishResult = std::variant<QString, QXmppError>; QXmppUserTuneManager(); |
