// SPDX-FileCopyrightText: 2022 Linus Jahn // SPDX-FileCopyrightText: 2022 Cochise César // // SPDX-License-Identifier: LGPL-2.1-or-later #ifndef QXMPPUSERLOCATIONMANAGER_H #define QXMPPUSERLOCATIONMANAGER_H #include "QXmppClientExtension.h" #include "QXmppPubSubEventHandler.h" #include template class QFuture; class QXmppGeolocItem; class QXMPP_EXPORT QXmppUserLocationManager : public QXmppClientExtension, public QXmppPubSubEventHandler { Q_OBJECT public: using Item = QXmppGeolocItem; using GetResult = std::variant; using PublishResult = std::variant; QXmppUserLocationManager(); QStringList discoveryFeatures() const override; QFuture request(const QString &jid); QFuture publish(const Item &); Q_SIGNAL void itemReceived(const QString &jid, const QXmppGeolocItem &); protected: /// \cond bool handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName) override; /// \endcond }; #endif // QXMPPUSERLOCATIONMANAGER_H