// SPDX-FileCopyrightText: 2021 Linus Jahn // // SPDX-License-Identifier: LGPL-2.1-or-later #ifndef QXMPPUSERTUNEMANAGER_H #define QXMPPUSERTUNEMANAGER_H #include "QXmppClientExtension.h" #include "QXmppError.h" #include "QXmppPubSubEventHandler.h" #include class QXmppTuneItem; template class QXmppTask; class QXMPP_EXPORT QXmppUserTuneManager : public QXmppClientExtension, public QXmppPubSubEventHandler { Q_OBJECT public: using Item = QXmppTuneItem; using GetResult = std::variant; using PublishResult = std::variant; QXmppUserTuneManager(); QStringList discoveryFeatures() const override; QXmppTask request(const QString &jid); QXmppTask publish(const QXmppTuneItem &); Q_SIGNAL void itemReceived(const QString &jid, const QXmppTuneItem &item); protected: /// \cond bool handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName) override; /// \endcond }; #endif // QXMPPUSERTUNEMANAGER_H