aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppRosterManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/QXmppRosterManager.h')
-rw-r--r--src/client/QXmppRosterManager.h13
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