5#ifndef QXMPPBLOCKINGMANAGER_H
6#define QXMPPBLOCKINGMANAGER_H
8#include "QXmppClientExtension.h"
16struct QXmppBlockingManagerPrivate;
18class QXMPP_EXPORT QXmppBlocklist
21 struct NotBlocked { };
23 QVector<QString> blockingEntries;
24 QVector<QString> partiallyBlockingEntries;
26 struct PartiallyBlocked {
27 QVector<QString> partiallyBlockingEntries;
30 using BlockingState = std::variant<NotBlocked, PartiallyBlocked, Blocked>;
33 QXmppBlocklist(QVector<QString>
entries);
34 QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppBlocklist)
36 QVector<QString>
entries()
const;
41 QVector<QString> m_blocklist;
53 using Result = std::variant<QXmpp::Success, QXmppError>;
55 QXmppBlockingManager();
56 ~QXmppBlockingManager()
override;
67 Q_SIGNAL
void blocked(
const QVector<QString> &jids);
68 Q_SIGNAL
void unblocked(
const QVector<QString> &jids);
74 bool handleStanza(
const QDomElement &,
const std::optional<QXmppE2eeMetadata> &)
override;
80 std::unique_ptr<QXmppBlockingManagerPrivate> d;
Q_SIGNAL void blocked(const QVector< QString > &jids)
Q_SIGNAL void subscribedChanged()
std::variant< QXmppBlocklist, QXmppError > BlocklistResult
Definition QXmppBlockingManager.h:52
QXmppTask< Result > unblock(QString jid)
Definition QXmppBlockingManager.h:64
QXmppTask< Result > block(QString jid)
Definition QXmppBlockingManager.h:62
bool subscribed
Whether the blocking manager is currently receiving updates of the blocklist.
Definition QXmppBlockingManager.h:49
bool isSubscribed() const
Returns whether the blocking manager currently receives updates of the blocklist.
Definition QXmppBlockingManager.cpp:254
QXmppTask< BlocklistResult > fetchBlocklist()
Fetches the list of blocked JIDs and subscribes to blocklist updates.
Definition QXmppBlockingManager.cpp:267
Q_SIGNAL void unblocked(const QVector< QString > &jids)
std::variant< QXmpp::Success, QXmppError > Result
Definition QXmppBlockingManager.h:53
bool containsEntry(QStringView) const
Definition QXmppBlockingManager.cpp:487
BlockingState blockingState(const QString &jid) const
Definition QXmppBlockingManager.cpp:501
QVector< QString > entries() const
Definition QXmppBlockingManager.cpp:475
std::variant< NotBlocked, PartiallyBlocked, Blocked > BlockingState
Definition QXmppBlockingManager.h:30
virtual QStringList discoveryFeatures() const
Definition QXmppClientExtension.cpp:22
virtual void onUnregistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:95
virtual void onRegistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:85
QXmppClientExtension()
Definition QXmppClientExtension.cpp:12
virtual bool handleStanza(const QDomElement &stanza)
You need to implement this method to process incoming XMPP stanzas.
Definition client/compat/removed_api.cpp:26
Definition QXmppTask.h:62