From 46f3831fd238b4c1fb10d44e4531d9e59d574c97 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Sun, 22 Jan 2023 18:06:09 +0100 Subject: Use QXmppError in all IQ results instead of StanzaError This allows us to report different error types with more information and makes it possible to distinguish stanza errors and errors generated locally. Part of #501. --- src/client/QXmppPubSubManager.h | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'src/client/QXmppPubSubManager.h') 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 continuation; }; - using Result = std::variant; - using FeaturesResult = std::variant, InvalidServiceType, QXmppStanza::Error>; - using NodesResult = std::variant, QXmppStanza::Error>; - using InstantNodeResult = std::variant; + using Result = std::variant; + using FeaturesResult = std::variant, InvalidServiceType, QXmppError>; + using NodesResult = std::variant, QXmppError>; + using InstantNodeResult = std::variant; template - using ItemResult = std::variant; + using ItemResult = std::variant; template - using ItemsResult = std::variant, QXmppStanza::Error>; - using ItemIdsResult = std::variant, QXmppStanza::Error>; - using PublishItemResult = std::variant; - using PublishItemsResult = std::variant, QXmppStanza::Error>; - using SubscriptionsResult = std::variant, QXmppStanza::Error>; - using AffiliationsResult = std::variant, QXmppStanza::Error>; - using OptionsResult = std::variant; - using NodeConfigResult = std::variant; + using ItemsResult = std::variant, QXmppError>; + using ItemIdsResult = std::variant, QXmppError>; + using PublishItemResult = std::variant; + using PublishItemsResult = std::variant, QXmppError>; + using SubscriptionsResult = std::variant, QXmppError>; + using AffiliationsResult = std::variant, QXmppError>; + using OptionsResult = std::variant; + using NodeConfigResult = std::variant; QXmppPubSubManager(); ~QXmppPubSubManager(); @@ -175,13 +175,12 @@ QXmppTask> QXmppPubSubManager::requestItem(con const QString &itemId) { using namespace QXmpp::Private; - using Error = QXmppStanza::Error; return chainIq(client()->sendIq(requestItemsIq(jid, nodeName, { itemId })), this, [](PubSubIq &&iq) -> ItemResult { 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."), {} }; }); } -- cgit v1.2.3