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;
22 Q_PROPERTY(
Support participantSupport READ participantSupport NOTIFY participantSupportChanged)
23 Q_PROPERTY(
Support messageArchivingSupport READ messageArchivingSupport NOTIFY messageArchivingSupportChanged)
24 Q_PROPERTY(QList<
Service> services READ services NOTIFY servicesChanged)
35 bool channelsSearchable =
false;
36 bool channelCreationAllowed =
false;
39 bool operator==(
const Service &other)
const;
73 QStringList discoveryFeatures()
const override;
75 Support participantSupport()
const;
78 Support messageArchivingSupport()
const;
81 QList<Service> services()
const;
84 QXmppTask<CreationResult> createChannel(
const QString &serviceJid,
const QString &channelId = {});
86 QXmppTask<ChannelJidResult> requestChannelJids(
const QString &serviceJid);
87 QXmppTask<ChannelNodeResult> requestChannelNodes(
const QString &channelJid);
89 QXmppTask<ConfigurationResult> requestChannelConfiguration(
const QString &channelJid);
90 QXmppTask<QXmppClient::EmptyResult> updateChannelConfiguration(
const QString &channelJid,
QXmppMixConfigItem configuration);
93 QXmppTask<InformationResult> requestChannelInformation(
const QString &channelJid);
94 QXmppTask<QXmppClient::EmptyResult> updateChannelInformation(
const QString &channelJid,
QXmppMixInfoItem information);
97 QXmppTask<JoiningResult> joinChannel(
const QString &channelJid,
const QString &nickname = {}, QXmppMixConfigItem::Nodes nodes =
~QXmppMixConfigItem::Nodes());
98 QXmppTask<JoiningResult> joinChannel(
const QXmppMixInvitation &invitation,
const QString &nickname = {}, QXmppMixConfigItem::Nodes nodes =
~QXmppMixConfigItem::Nodes());
100 QXmppTask<NicknameResult> updateNickname(
const QString &channelJid,
const QString &nickname);
101 QXmppTask<SubscriptionResult> updateSubscriptions(
const QString &channelJid, QXmppMixConfigItem::Nodes subscriptionAdditions = ~QXmppMixConfigItem::Nodes(), QXmppMixConfigItem::Nodes subscriptionRemovals = ~QXmppMixConfigItem::Nodes());
103 QXmppTask<InvitationResult> requestInvitation(
const QString &channelJid,
const QString &inviteeJid);
105 QXmppTask<JidResult> requestAllowedJids(
const QString &channelJid);
106 QXmppTask<QXmppClient::EmptyResult> allowJid(
const QString &channelJid,
const QString &jid);
107 Q_SIGNAL
void jidAllowed(
const QString &channelJid,
const QString &jid);
110 QXmppTask<QXmppClient::EmptyResult> disallowJid(
const QString &channelJid,
const QString &jid);
112 QXmppTask<QXmppClient::EmptyResult> disallowAllJids(
const QString &channelJid);
115 QXmppTask<JidResult> requestBannedJids(
const QString &channelJid);
116 QXmppTask<QXmppClient::EmptyResult> banJid(
const QString &channelJid,
const QString &jid);
117 Q_SIGNAL
void jidBanned(
const QString &channelJid,
const QString &jid);
119 QXmppTask<QXmppClient::EmptyResult> unbanJid(
const QString &channelJid,
const QString &jid);
120 Q_SIGNAL
void jidUnbanned(
const QString &channelJid,
const QString &jid);
121 QXmppTask<QXmppClient::EmptyResult> unbanAllJids(
const QString &channelJid);
124 QXmppTask<ParticipantResult> requestParticipants(
const QString &channelJid);
126 Q_SIGNAL
void participantLeft(
const QString &channelJid,
const QString &participantId);
128 QXmppTask<QXmppClient::EmptyResult> leaveChannel(
const QString &channelJid);
130 QXmppTask<QXmppClient::EmptyResult> deleteChannel(
const QString &channelJid);
137 bool handlePubSubEvent(
const QDomElement &element,
const QString &pubSubService,
const QString &nodeName)
override;
141 QXmppMixIq prepareJoinIq(
const QString &channelJid,
const QString &nickname, QXmppMixConfigItem::Nodes nodes);
142 QXmppTask<JoiningResult> joinChannel(
QXmppMixIq &&iq);
143 QXmppTask<JidResult> requestJids(
const QString &channelJid,
const QString &node);
144 QXmppTask<QXmppClient::EmptyResult> addJidToNode(
const QString &channelJid,
const QString &node,
const QString &jid);
148 void setParticipantSupport(
Support participantSupport);
149 void setMessageArchivingSupport(
Support messageArchivingSupport);
150 void addService(
const Service &service);
151 void removeService(
const QString &jid);
152 void removeServices();
153 void resetCachedData();
155 const std::unique_ptr<QXmppMixManagerPrivate> d;
157 friend class tst_QXmppMixManager;
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:85
Definition QXmppDiscoveryIq.h:18
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
Definition QXmppMixManager.h:20
QString ChannelJid
Definition QXmppMixManager.h:55
Q_SIGNAL void allJidsDisallowed(const QString &channelJid)
Q_SIGNAL void allJidsUnbanned(const QString &channelJid)
Q_SIGNAL void jidBanned(const QString &channelJid, const QString &jid)
Q_SIGNAL void participantSupportChanged()
std::variant< QXmppMixConfigItem, QXmppError > ConfigurationResult
Definition QXmppMixManager.h:61
std::variant< Participation, QXmppError > JoiningResult
Definition QXmppMixManager.h:63
Q_SIGNAL void participantLeft(const QString &channelJid, const QString &participantId)
std::variant< Subscription, QXmppError > SubscriptionResult
Definition QXmppMixManager.h:66
std::variant< ChannelJid, QXmppError > CreationResult
Definition QXmppMixManager.h:58
Q_SIGNAL void servicesChanged()
std::variant< QXmppMixConfigItem::Nodes, QXmppError > ChannelNodeResult
Definition QXmppMixManager.h:60
std::variant< QVector< ChannelJid >, QXmppError > ChannelJidResult
Definition QXmppMixManager.h:59
Q_SIGNAL void channelDeleted(const QString &channelJid)
Q_SIGNAL void jidUnbanned(const QString &channelJid, const QString &jid)
std::variant< QVector< Jid >, QXmppError > JidResult
Definition QXmppMixManager.h:67
std::variant< QVector< QXmppMixParticipantItem >, QXmppError > ParticipantResult
Definition QXmppMixManager.h:68
Q_SIGNAL void jidAllowed(const QString &channelJid, const QString &jid)
std::variant< Nickname, QXmppError > NicknameResult
Definition QXmppMixManager.h:64
Support
Definition QXmppMixManager.h:27
Q_SIGNAL void channelConfigurationUpdated(const QString &channelJid, const QXmppMixConfigItem &configuration)
QString Nickname
Definition QXmppMixManager.h:56
std::variant< QXmppMixInfoItem, QXmppError > InformationResult
Definition QXmppMixManager.h:62
Q_SIGNAL void allJidsAllowed(const QString &channelJid)
std::variant< QXmppMixInvitation, QXmppError > InvitationResult
Definition QXmppMixManager.h:65
Q_SIGNAL void messageArchivingSupportChanged()
Q_SIGNAL void channelInformationUpdated(const QString &channelJid, const QXmppMixInfoItem &information)
QString Jid
Definition QXmppMixManager.h:54
Q_SIGNAL void participantReceived(const QString &channelJid, const QXmppMixParticipantItem &participant)
Q_SIGNAL void jidDisallowed(const QString &channelJid, const QString &jid)
Definition QXmppMixParticipantItem.h:13
Definition QXmppPubSubEventHandler.h:15
Definition QXmppError.h:17
Definition QXmppMixManager.h:48
QString participantId
Definition QXmppMixManager.h:49
QXmppMixConfigItem::Nodes subscriptions
Definition QXmppMixManager.h:51
QString nickname
Definition QXmppMixManager.h:50
Definition QXmppMixManager.h:33
QString jid
Definition QXmppMixManager.h:34
Definition QXmppMixManager.h:43
QXmppMixConfigItem::Nodes additions
Definition QXmppMixManager.h:44
QXmppMixConfigItem::Nodes removals
Definition QXmppMixManager.h:45