aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppExternalServiceDiscoveryManager.h
diff options
context:
space:
mode:
authortaiBsu <dev@taibsu.de>2023-03-09 16:45:10 +0100
committerGitHub <noreply@github.com>2023-03-09 16:45:10 +0100
commit6ea3edfd83a0bf1558d43e48eac563730276c175 (patch)
tree0139fb92aca9da9f637237b7bedbd34393b0292e /src/client/QXmppExternalServiceDiscoveryManager.h
parent37d56016ac7940f5c876d0293cd9e3f7802ea63a (diff)
downloadqxmpp-6ea3edfd83a0bf1558d43e48eac563730276c175.tar.gz
Implement XEP-0215: External Service Discovery (#542)
Implements https://xmpp.org/extensions/xep-0215.html in version 1.0.
Diffstat (limited to 'src/client/QXmppExternalServiceDiscoveryManager.h')
-rw-r--r--src/client/QXmppExternalServiceDiscoveryManager.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/client/QXmppExternalServiceDiscoveryManager.h b/src/client/QXmppExternalServiceDiscoveryManager.h
new file mode 100644
index 00000000..79f5f6a1
--- /dev/null
+++ b/src/client/QXmppExternalServiceDiscoveryManager.h
@@ -0,0 +1,32 @@
+// SPDX-FileCopyrightText: 2023 Tibor Csötönyi <work@taibsu.de>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+#ifndef QXMPPEXTERNALSERVICEDISCOVERYMANAGER_H
+#define QXMPPEXTERNALSERVICEDISCOVERYMANAGER_H
+
+#include "QXmppClientExtension.h"
+#include "QXmppError.h"
+#include "QXmppExternalService.h"
+#include "QXmppTask.h"
+
+class QDateTime;
+class QXmppExternalServicePrivate;
+class QXMPP_EXPORT QXmppExternalServiceDiscoveryManager : public QXmppClientExtension
+{
+ Q_OBJECT
+
+public:
+ QXmppExternalServiceDiscoveryManager();
+ ~QXmppExternalServiceDiscoveryManager();
+
+ using ServicesResult = std::variant<QVector<QXmppExternalService>, QXmppError>;
+
+ QXmppTask<ServicesResult> requestServices(const QString &jid, const QString &node = {});
+
+ /// \cond
+ QStringList discoveryFeatures() const override;
+ /// \endcond
+};
+
+#endif // QXMPPEXTERNALSERVICEDISCOVERYMANAGER_H