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/QXmppPep_p.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/QXmppPep_p.h')
| -rw-r--r-- | src/client/QXmppPep_p.h | 9 |
1 files changed, 4 insertions, 5 deletions
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); |
