aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppPubSubManager.cpp
diff options
context:
space:
mode:
authorMelvin Keskin <melvo@olomono.de>2022-04-07 18:38:22 +0200
committerLinus Jahn <lnj@kaidan.im>2022-04-09 22:27:10 +0200
commitf78931350a05c950a7e650805d5db02ae7b9ac86 (patch)
tree17f0ac4f7952ef0d017eea57931e265a0c4bf14a /src/client/QXmppPubSubManager.cpp
parent0655b3eb3e2d110434b0d6f4d1ddee7697f1c0b6 (diff)
downloadqxmpp-f78931350a05c950a7e650805d5db02ae7b9ac86.tar.gz
PubSubManager: Add subscribeToNode()/unsubscribeFromNode()
Diffstat (limited to 'src/client/QXmppPubSubManager.cpp')
-rw-r--r--src/client/QXmppPubSubManager.cpp40
1 files changed, 40 insertions, 0 deletions
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
@@ -643,6 +643,46 @@ QFuture<QXmppPubSubManager::Result> QXmppPubSubManager::cancelNodeConfiguration(
}
///
+/// 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::Result> 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::Result> 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<Result> QXmppPubSubManager::createPepNode(const QString &nodeName)
///
/// Creates an empty PEP node with the default configuration.