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 = {});
114 Q_SLOT
bool acceptSubscription(
const QString &bareJid,
const QString &reason = {});
115 Q_SLOT
bool refuseSubscription(
const QString &bareJid,
const QString &reason = {});
116 Q_SLOT
bool addItem(
const QString &bareJid,
const QString &name = {},
const QSet<QString> &groups = {});
117 Q_SLOT
bool removeItem(
const QString &bareJid);
118 Q_SLOT
bool renameItem(
const QString &bareJid,
const QString &name);
119 Q_SLOT
bool subscribe(
const QString &bareJid,
const QString &reason = {});
120 Q_SLOT
bool unsubscribe(
const QString &bareJid,
const QString &reason = {});
130 Q_SIGNAL
void rosterReceived();
133 Q_SIGNAL
void presenceChanged(
const QString &bareJid,
const QString &resource);
144 Q_SIGNAL
void subscriptionReceived(
const QString &bareJid);
146 Q_SIGNAL
void subscriptionRequestReceived(
const QString &subscriberBareJid,
const QXmppPresence &presence);
150 Q_SIGNAL
void itemAdded(
const QString &bareJid);
154 Q_SIGNAL
void itemChanged(
const QString &bareJid);
158 Q_SIGNAL
void itemRemoved(
const QString &bareJid);
165 using RosterResult = std::variant<QXmppRosterIq, QXmppError>;
167 Q_SLOT
void _q_connected();
168 Q_SLOT
void _q_disconnected();
171 void handleSubscriptionRequest(
const QString &bareJid,
const QXmppPresence &presence);
174 const std::unique_ptr<QXmppRosterManagerPrivate> d;
179 #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:45
std::variant< QXmpp::Success, QXmppError > Result
Empty result containing QXmpp::Success or a QXmppError.
Definition: QXmppRosterManager.h:89
Definition: QXmppTask.h:67
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:33