diff options
| author | Linus Jahn <lnj@kaidan.im> | 2021-07-05 15:25:54 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2021-07-05 18:07:28 +0200 |
| commit | f79990e13fffd36a5d2aa4153ef06b48c0eeebe4 (patch) | |
| tree | b3519ead4994bb35aff38d20f367317defee5238 /src/client/QXmppRosterManager.h | |
| parent | 28aad17d6d928ee0a983d7032ae0f11fbc71bb06 (diff) | |
| download | qxmpp-f79990e13fffd36a5d2aa4153ef06b48c0eeebe4.tar.gz | |
RosterManager: Add QFuture-based requests
Diffstat (limited to 'src/client/QXmppRosterManager.h')
| -rw-r--r-- | src/client/QXmppRosterManager.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/client/QXmppRosterManager.h b/src/client/QXmppRosterManager.h index 81f0538a..09c32ea0 100644 --- a/src/client/QXmppRosterManager.h +++ b/src/client/QXmppRosterManager.h @@ -30,10 +30,14 @@ #include "QXmppPresence.h" #include "QXmppRosterIq.h" +#include <variant> + #include <QMap> #include <QObject> #include <QStringList> +template<typename T> +class QFuture; class QXmppRosterManagerPrivate; /// @@ -71,6 +75,9 @@ 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>; + QXmppRosterManager(QXmppClient *stream); ~QXmppRosterManager() override; @@ -84,6 +91,12 @@ public: QXmppPresence getPresence(const QString &bareJid, const QString &resource) const; + QFuture<Result> addRosterItem(const QString &bareJid, const QString &name = {}, const QSet<QString> &groups = {}); + QFuture<Result> removeRosterItem(const QString &bareJid); + QFuture<Result> renameRosterItem(const QString &bareJid, const QString &name); + QFuture<QXmpp::PacketState> subscribeTo(const QString &bareJid, const QString &reason = {}); + QFuture<QXmpp::PacketState> unsubscribeFrom(const QString &bareJid, const QString &reason = {}); + /// \cond bool handleStanza(const QDomElement &element) override; /// \endcond |
