5#ifndef QXMPPMIXMANAGER_H
6#define QXMPPMIXMANAGER_H
8#include "QXmppClient.h"
9#include "QXmppClientExtension.h"
10#include "QXmppMixConfigItem.h"
11#include "QXmppMixInfoItem.h"
12#include "QXmppMixParticipantItem.h"
13#include "QXmppPubSubEventHandler.h"
16class QXmppMixInvitation;
17class QXmppMixManagerPrivate;
40 bool operator==(
const Service &other)
const;
99 QXmppTask<JoiningResult> joinChannel(
const QXmppMixInvitation &invitation,
const QString &nickname = {}, QXmppMixConfigItem::Nodes nodes = ~QXmppMixConfigItem::Nodes());
101 QXmppTask<NicknameResult> updateNickname(
const QString &channelJid,
const QString &nickname);
102 QXmppTask<SubscriptionResult> updateSubscriptions(
const QString &channelJid, QXmppMixConfigItem::Nodes subscriptionAdditions = ~QXmppMixConfigItem::Nodes(), QXmppMixConfigItem::Nodes subscriptionRemovals = {});
104 QXmppTask<InvitationResult> requestInvitation(
const QString &channelJid,
const QString &inviteeJid);
106 QXmppTask<JidResult> requestAllowedJids(
const QString &channelJid);
107 QXmppTask<QXmppClient::EmptyResult> allowJid(
const QString &channelJid,
const QString &jid);
108 Q_SIGNAL
void jidAllowed(
const QString &channelJid,
const QString &jid);
118 Q_SIGNAL
void jidBanned(
const QString &channelJid,
const QString &jid);
121 Q_SIGNAL
void jidUnbanned(
const QString &channelJid,
const QString &jid);
127 Q_SIGNAL
void participantLeft(
const QString &channelJid,
const QString &participantId);
138 bool handlePubSubEvent(
const QDomElement &element,
const QString &pubSubService,
const QString &nodeName)
override;
142 QXmppMixIq prepareJoinIq(
const QString &channelJid,
const QString &nickname, QXmppMixConfigItem::Nodes nodes);
147 void updateCachedData();
148 void updateSupport();
149 void updateServices();
150 void updateService(
const QString &jid);
154 void addService(
const Service &service);
155 void removeService(
const QString &jid);
156 void removeServices();
158 void resetCachedData();
160 const std::unique_ptr<QXmppMixManagerPrivate> d;
162 friend class tst_QXmppMixManager;
virtual void onUnregistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:95
virtual void onRegistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:85
QXmppClient * client() const
Definition QXmppClientExtension.cpp:57
QXmppClientExtension()
Definition QXmppClientExtension.cpp:12
The QXmppMixConfigItem class represents a PubSub item of a MIX channel containing its configuration a...
Definition QXmppMixConfigItem.h:14
The QXmppMixInfoItem class represents a PubSub item of a MIX channel containing channel information a...
Definition QXmppMixInfoItem.h:15
Definition QXmppMixIq.h:18
std::variant< QVector< ChannelJid >, QXmppError > ChannelJidResult
Definition QXmppMixManager.h:60
QString ChannelJid
Definition QXmppMixManager.h:56
Q_SIGNAL void participantLeft(const QString &channelJid, const QString &participantId)
Q_SIGNAL void jidUnbanned(const QString &channelJid, const QString &jid)
Q_SIGNAL void channelDeleted(const QString &channelJid)
QXmppTask< ParticipantResult > requestParticipants(const QString &channelJid)
Definition QXmppMixManager.cpp:965
Q_SIGNAL void jidBanned(const QString &channelJid, const QString &jid)
Support participantSupport
Definition QXmppMixManager.h:22
std::variant< Nickname, QXmppError > NicknameResult
Definition QXmppMixManager.h:65
std::variant< QXmppMixConfigItem::Nodes, QXmppError > ChannelNodeResult
Definition QXmppMixManager.h:61
QXmppTask< QXmppClient::EmptyResult > deleteChannel(const QString &channelJid)
Definition QXmppMixManager.cpp:1018
QStringList discoveryFeatures() const override
Definition QXmppMixManager.cpp:420
Q_SIGNAL void channelConfigurationUpdated(const QString &channelJid, const QXmppMixConfigItem &configuration)
QString Jid
Definition QXmppMixManager.h:55
Q_SIGNAL void jidDisallowed(const QString &channelJid, const QString &jid)
Q_SIGNAL void allJidsUnbanned(const QString &channelJid)
Q_SIGNAL void channelInformationUpdated(const QString &channelJid, const QXmppMixInfoItem &information)
Q_SIGNAL void allJidsDisallowed(const QString &channelJid)
Q_SIGNAL void allJidsAllowed(const QString &channelJid)
QXmppMixManager()
Definition QXmppMixManager.cpp:412
Q_SIGNAL void messageArchivingSupportChanged()
QXmppTask< JoiningResult > joinChannel(const QString &channelJid, const QString &nickname={}, QXmppMixConfigItem::Nodes nodes=~QXmppMixConfigItem::Nodes())
Definition QXmppMixManager.cpp:645
std::variant< ChannelJid, QXmppError > CreationResult
Definition QXmppMixManager.h:59
QXmppTask< QXmppClient::EmptyResult > leaveChannel(const QString &channelJid)
Definition QXmppMixManager.cpp:1000
Support
Definition QXmppMixManager.h:27
QXmppTask< JidResult > requestBannedJids(const QString &channelJid)
Definition QXmppMixManager.cpp:872
QXmppTask< CreationResult > createChannel(const QString &serviceJid, const QString &channelId={})
Definition QXmppMixManager.cpp:500
QXmppTask< QXmppClient::EmptyResult > disallowAllJids(const QString &channelJid)
Definition QXmppMixManager.cpp:850
std::variant< QVector< QXmppMixParticipantItem >, QXmppError > ParticipantResult
Definition QXmppMixManager.h:69
Q_SIGNAL void jidAllowed(const QString &channelJid, const QString &jid)
Q_SIGNAL void participantReceived(const QString &channelJid, const QXmppMixParticipantItem &participant)
std::variant< QXmppMixInvitation, QXmppError > InvitationResult
Definition QXmppMixManager.h:66
std::variant< Participation, QXmppError > JoiningResult
Definition QXmppMixManager.h:64
Q_SIGNAL void servicesChanged()
QXmppTask< InformationResult > requestChannelInformation(const QString &channelJid)
Definition QXmppMixManager.cpp:599
Support messageArchivingSupport
Definition QXmppMixManager.h:23
QXmppTask< QXmppClient::EmptyResult > unbanJid(const QString &channelJid, const QString &jid)
Definition QXmppMixManager.cpp:916
QXmppTask< QXmppClient::EmptyResult > updateChannelInformation(const QString &channelJid, QXmppMixInfoItem information)
Definition QXmppMixManager.cpp:619
QXmppTask< QXmppClient::EmptyResult > disallowJid(const QString &channelJid, const QString &jid)
Definition QXmppMixManager.cpp:824
std::variant< Subscription, QXmppError > SubscriptionResult
Definition QXmppMixManager.h:67
Q_SIGNAL void participantSupportChanged()
std::variant< QXmppMixConfigItem, QXmppError > ConfigurationResult
Definition QXmppMixManager.h:62
QString Nickname
Definition QXmppMixManager.h:57
std::variant< QVector< Jid >, QXmppError > JidResult
Definition QXmppMixManager.h:68
QXmppTask< QXmppClient::EmptyResult > banJid(const QString &channelJid, const QString &jid)
Definition QXmppMixManager.cpp:892
std::variant< QXmppMixInfoItem, QXmppError > InformationResult
Definition QXmppMixManager.h:63
QXmppTask< QXmppClient::EmptyResult > unbanAllJids(const QString &channelJid)
Definition QXmppMixManager.cpp:939
QList< Service > services
Definition QXmppMixManager.h:24
Definition QXmppMixParticipantItem.h:13
Definition QXmppPubSubEventHandler.h:15
virtual bool handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName)=0
Definition QXmppTask.h:330
Definition QXmppError.h:17
Definition QXmppMixManager.h:49
QString participantId
Definition QXmppMixManager.h:50
QString nickname
Definition QXmppMixManager.h:51
QXmppMixConfigItem::Nodes subscriptions
Definition QXmppMixManager.h:52
Definition QXmppMixManager.h:34
QString jid
Definition QXmppMixManager.h:35
bool channelCreationAllowed
Definition QXmppMixManager.h:37
bool channelsSearchable
Definition QXmppMixManager.h:36
Definition QXmppMixManager.h:44
QXmppMixConfigItem::Nodes additions
Definition QXmppMixManager.h:45
QXmppMixConfigItem::Nodes removals
Definition QXmppMixManager.h:46