8 #ifndef QXMPPROSTERMANAGER_H 9 #define QXMPPROSTERMANAGER_H 11 #include "QXmppClientExtension.h" 12 #include "QXmppPresence.h" 13 #include "QXmppRosterIq.h" 14 #include "QXmppSendResult.h" 20 #include <QStringList> 24 class QXmppRosterManagerPrivate;
89 using Result = std::variant<QXmpp::Success, QXmppError>;
94 bool isRosterReceived()
const;
95 QStringList getRosterBareJids()
const;
98 QStringList getResources(
const QString &bareJid)
const;
99 QMap<QString, QXmppPresence> getAllPresencesForBareJid(
100 const QString &bareJid)
const;
102 const QString &resource)
const;
104 QXmppTask<Result> addRosterItem(
const QString &bareJid,
const QString &name = {},
const QSet<QString> &groups = {});
115 bool acceptSubscription(
const QString &bareJid,
const QString &reason = {});
116 bool refuseSubscription(
const QString &bareJid,
const QString &reason = {});
117 bool addItem(
const QString &bareJid,
const QString &name = {},
const QSet<QString> &groups = {});
118 bool removeItem(
const QString &bareJid);
119 bool renameItem(
const QString &bareJid,
const QString &name);
120 bool subscribe(
const QString &bareJid,
const QString &reason = {});
121 bool unsubscribe(
const QString &bareJid,
const QString &reason = {});
132 void rosterReceived();
135 void presenceChanged(
const QString &bareJid,
const QString &resource);
146 void subscriptionReceived(
const QString &bareJid);
148 void subscriptionRequestReceived(
const QString &subscriberBareJid,
const QXmppPresence &presence);
152 void itemAdded(
const QString &bareJid);
156 void itemChanged(
const QString &bareJid);
160 void itemRemoved(
const QString &bareJid);
168 void _q_disconnected();
172 using RosterResult = std::variant<QXmppRosterIq, QXmppError>;
174 void handleSubscriptionRequest(
const QString &bareJid,
const QXmppPresence &presence);
177 const std::unique_ptr<QXmppRosterManagerPrivate> d;
182 #endif // QXMPPROSTER_H virtual void onRegistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:85
virtual void onUnregistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:95
virtual bool handleStanza(const QDomElement &stanza)
You need to implement this method to process incoming XMPP stanzas.
Definition: client/compat/removed_api.cpp:26
std::variant< QXmpp::Success, QXmppError > Result
Empty result containing QXmpp::Success or a QXmppError.
Definition: QXmppRosterManager.h:89
Definition: QXmppTask.h:61
The QXmppRosterManager class provides access to a connected client's roster.
Definition: QXmppRosterManager.h:83
The QXmppPresence class represents an XMPP presence stanza.
Definition: QXmppPresence.h:21
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition: QXmppClientExtension.h:31
Definition: QXmppMixManager.h:19
Main class for starting and managing connections to XMPP servers.
Definition: QXmppClient.h:61
The QXmppRosterIq::Item class represents a roster entry.
Definition: QXmppRosterIq.h:32