From f78931350a05c950a7e650805d5db02ae7b9ac86 Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Thu, 7 Apr 2022 18:38:22 +0200 Subject: PubSubManager: Add subscribeToNode()/unsubscribeFromNode() --- src/client/QXmppPubSubManager.cpp | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/client/QXmppPubSubManager.cpp') diff --git a/src/client/QXmppPubSubManager.cpp b/src/client/QXmppPubSubManager.cpp index aba9f72f..66c2d345 100644 --- a/src/client/QXmppPubSubManager.cpp +++ b/src/client/QXmppPubSubManager.cpp @@ -642,6 +642,46 @@ QFuture QXmppPubSubManager::cancelNodeConfiguration( return client()->sendGenericIq(std::move(request)); } +/// +/// Subscribes to a node. +/// +/// \warning THIS API IS NOT FINALIZED YET! +/// +/// \param serviceJid JID of the pubsub service +/// \param nodeName name of the pubsub node being subscribed +/// \param subscriberJid bare or full JID of the subscriber +/// +QFuture QXmppPubSubManager::subscribeToNode(const QString &serviceJid, const QString &nodeName, const QString &subscriberJid) +{ + QXmppPubSubIq request; + request.setType(QXmppIq::Set); + request.setTo(serviceJid); + request.setQueryNode(nodeName); + request.setQueryType(QXmppPubSubIq<>::Subscribe); + request.setQueryJid(subscriberJid); + return client()->sendGenericIq(std::move(request)); +} + +/// +/// Unsubscribes from a node. +/// +/// \warning THIS API IS NOT FINALIZED YET! +/// +/// \param serviceJid JID of the pubsub service +/// \param nodeName name of the pubsub node being subscribed +/// \param subscriberJid bare or full JID of the subscriber +/// +QFuture QXmppPubSubManager::unsubscribeFromNode(const QString &serviceJid, const QString &nodeName, const QString &subscriberJid) +{ + QXmppPubSubIq request; + request.setType(QXmppIq::Set); + request.setTo(serviceJid); + request.setQueryNode(nodeName); + request.setQueryType(QXmppPubSubIq<>::Unsubscribe); + request.setQueryJid(subscriberJid); + return client()->sendGenericIq(std::move(request)); +} + /// /// \fn QFuture QXmppPubSubManager::createPepNode(const QString &nodeName) /// -- cgit v1.2.3