5#ifndef QXMPPBLOCKINGMANAGER_H
6#define QXMPPBLOCKINGMANAGER_H
8#include "QXmppClientExtension.h"
16struct QXmppBlockingManagerPrivate;
26 QVector<QString> blockingEntries;
27 QVector<QString> partiallyBlockingEntries;
29 struct PartiallyBlocked
31 QVector<QString> partiallyBlockingEntries;
34 using BlockingState = std::variant<NotBlocked, PartiallyBlocked, Blocked>;
40 QVector<QString> entries()
const;
41 bool containsEntry(QStringView)
const;
45 QVector<QString> m_blocklist;
53 Q_PROPERTY(
bool subscribed READ isSubscribed NOTIFY subscribedChanged)
57 using Result = std::variant<QXmpp::Success, QXmppError>;
62 bool isSubscribed()
const;
71 Q_SIGNAL
void blocked(
const QVector<QString> &jids);
72 Q_SIGNAL
void unblocked(
const QVector<QString> &jids);
75 QStringList discoveryFeatures()
const override;
77 bool handleStanza(
const QDomElement &,
const std::optional<QXmppE2eeMetadata> &)
override;
83 std::unique_ptr<QXmppBlockingManagerPrivate> d;
Uses XEP-0191: Blocking Command to manage blocked accounts and services.
Definition QXmppBlockingManager.h:49
Q_SIGNAL void unblocked(const QVector< QString > &jids)
QXmppTask< Result > unblock(QString jid)
Definition QXmppBlockingManager.h:68
std::variant< QXmppBlocklist, QXmppError > BlocklistResult
Definition QXmppBlockingManager.h:56
Q_SIGNAL void subscribedChanged()
Q_SIGNAL void blocked(const QVector< QString > &jids)
QXmppTask< Result > block(QString jid)
Definition QXmppBlockingManager.h:66
std::variant< QXmpp::Success, QXmppError > Result
Definition QXmppBlockingManager.h:57
List of blocked entries according to XEP-0191: Blocking Command with helper functions to check the bl...
Definition QXmppBlockingManager.h:19
std::variant< NotBlocked, PartiallyBlocked, Blocked > BlockingState
Definition QXmppBlockingManager.h:34
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition QXmppClientExtension.h:33
The QXmppClient class is the main class for using QXmpp.
Definition QXmppClient.h:84
Definition QXmppTask.h:62