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" 16 class QXmppMixInvitation;
17 class 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)
36 bool channelsSearchable =
false;
37 bool channelCreationAllowed =
false;
40 bool operator==(
const Service &other)
const;
76 Support participantSupport()
const;
77 Q_SIGNAL
void participantSupportChanged();
79 Support messageArchivingSupport()
const;
80 Q_SIGNAL
void messageArchivingSupportChanged();
82 QList<Service> services()
const;
83 Q_SIGNAL
void servicesChanged();
92 Q_SIGNAL
void channelConfigurationUpdated(
const QString &channelJid,
const QXmppMixConfigItem &configuration);
96 Q_SIGNAL
void channelInformationUpdated(
const QString &channelJid,
const QXmppMixInfoItem &information);
102 QXmppTask<SubscriptionResult> updateSubscriptions(
const QString &channelJid, QXmppMixConfigItem::Nodes subscriptionAdditions = ~QXmppMixConfigItem::Nodes(), QXmppMixConfigItem::Nodes subscriptionRemovals = {});
108 Q_SIGNAL
void jidAllowed(
const QString &channelJid,
const QString &jid);
109 Q_SIGNAL
void allJidsAllowed(
const QString &channelJid);
112 Q_SIGNAL
void jidDisallowed(
const QString &channelJid,
const QString &jid);
114 Q_SIGNAL
void allJidsDisallowed(
const QString &channelJid);
118 Q_SIGNAL
void jidBanned(
const QString &channelJid,
const QString &jid);
121 Q_SIGNAL
void jidUnbanned(
const QString &channelJid,
const QString &jid);
123 Q_SIGNAL
void allJidsUnbanned(
const QString &channelJid);
127 Q_SIGNAL
void participantLeft(
const QString &channelJid,
const QString &participantId);
132 Q_SIGNAL
void channelDeleted(
const QString &channelJid);
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);
152 void setParticipantSupport(Support participantSupport);
153 void setMessageArchivingSupport(Support messageArchivingSupport);
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;
165 #endif // QXMPPMIXMANAGER_H virtual void onRegistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:85
Definition: QXmppPubSubEventHandler.h:14
Support
Definition: QXmppMixManager.h:27
QXmppMixConfigItem::Nodes subscriptions
Definition: QXmppMixManager.h:52
Definition: QXmppMixManager.h:49
virtual void onUnregistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:95
Definition: QXmppMixIq.h:17
std::variant< QXmppMixInvitation, QXmppError > InvitationResult
Definition: QXmppMixManager.h:66
std::variant< Nickname, QXmppError > NicknameResult
Definition: QXmppMixManager.h:65
QString ChannelJid
Definition: QXmppMixManager.h:56
std::variant< Participation, QXmppError > JoiningResult
Definition: QXmppMixManager.h:64
Definition: QXmppMixParticipantItem.h:12
Definition: QXmppError.h:17
QString nickname
Definition: QXmppMixManager.h:51
std::variant< QVector< Jid >, QXmppError > JidResult
Definition: QXmppMixManager.h:68
Definition: QXmppTask.h:67
The QXmppMixInfoItem class represents a PubSub item of a MIX channel containing channel information a...
Definition: QXmppMixInfoItem.h:14
QXmppMixConfigItem::Nodes additions
Definition: QXmppMixManager.h:45
std::variant< QXmppMixConfigItem, QXmppError > ConfigurationResult
Definition: QXmppMixManager.h:62
QString Jid
Definition: QXmppMixManager.h:55
QString jid
Definition: QXmppMixManager.h:35
QString participantId
Definition: QXmppMixManager.h:50
std::variant< QVector< ChannelJid >, QXmppError > ChannelJidResult
Definition: QXmppMixManager.h:60
std::variant< QVector< QXmppMixParticipantItem >, QXmppError > ParticipantResult
Definition: QXmppMixManager.h:69
virtual bool handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName)=0
std::variant< ChannelJid, QXmppError > CreationResult
Definition: QXmppMixManager.h:59
Definition: QXmppMixManager.h:34
virtual QStringList discoveryFeatures() const
Definition: QXmppClientExtension.cpp:22
Definition: QXmppMixManager.h:44
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition: QXmppClientExtension.h:31
std::variant< QXmppMixConfigItem::Nodes, QXmppError > ChannelNodeResult
Definition: QXmppMixManager.h:61
QXmppMixConfigItem::Nodes removals
Definition: QXmppMixManager.h:46
std::variant< QXmppMixInfoItem, QXmppError > InformationResult
Definition: QXmppMixManager.h:63
std::variant< Subscription, QXmppError > SubscriptionResult
Definition: QXmppMixManager.h:67
Definition: QXmppMixManager.h:19
QString Nickname
Definition: QXmppMixManager.h:57
Main class for starting and managing connections to XMPP servers.
Definition: QXmppClient.h:61
The QXmppMixConfigItem class represents a PubSub item of a MIX channel containing its configuration a...
Definition: QXmppMixConfigItem.h:13