diff options
| author | Linus Jahn <lnj@kaidan.im> | 2023-01-22 18:06:09 +0100 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2023-01-22 18:10:44 +0100 |
| commit | 46f3831fd238b4c1fb10d44e4531d9e59d574c97 (patch) | |
| tree | f21c85c98502ef3821d52ee4964060a2c49885d2 /src/client/QXmppPubSubManager.h | |
| parent | df37c35aa443e6ca7e3baad5f1bbeb379063df55 (diff) | |
| download | qxmpp-46f3831fd238b4c1fb10d44e4531d9e59d574c97.tar.gz | |
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.
Diffstat (limited to 'src/client/QXmppPubSubManager.h')
| -rw-r--r-- | src/client/QXmppPubSubManager.h | 29 |
1 files changed, 14 insertions, 15 deletions
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."), {} }; }); } |
