blob: 27cfe0b22c23784c5574cccf826f683c70675391 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
// SPDX-FileCopyrightText: 2023 Tibor Csötönyi <work@taibsu.de>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
#include "QXmppExternalServiceDiscoveryManager.h"
#include "QXmppClient.h"
#include "QXmppConstants_p.h"
#include "QXmppExternalServiceDiscoveryIq.h"
#include "QXmppIqHandling.h"
using namespace QXmpp::Private;
///
/// \brief The QXmppExternalServiceDiscoveryManager class makes it possible to
/// discover information about external services from providers
/// as defined by \xep{0215, External Service Discovery}.
///
/// To make use of this manager, you need to instantiate it and load it into
/// the QXmppClient instance as follows:
///
/// \code
/// auto *manager = client->addNewExtension<QXmppExternalServiceDiscoveryManager>();
/// \endcode
///
/// \ingroup Managers
///
/// \since QXmpp 1.6
///
QXmppExternalServiceDiscoveryManager::QXmppExternalServiceDiscoveryManager()
{
}
QXmppExternalServiceDiscoveryManager::~QXmppExternalServiceDiscoveryManager() = default;
///
/// Requests external services from the specified XMPP entity.
///
/// \param jid The target entity's JID.
/// \param node The target node (optional).
///
/// \since QXmpp 1.6
///
QXmppTask<QXmppExternalServiceDiscoveryManager::ServicesResult> QXmppExternalServiceDiscoveryManager::requestServices(const QString &jid, const QString &node)
{
QXmppExternalServiceDiscoveryIq request;
request.setType(QXmppIq::Get);
request.setTo(jid);
return chainIq(client()->sendIq(std::move(request)), this, [](QXmppExternalServiceDiscoveryIq &&iq) -> ServicesResult {
return iq.externalServices();
});
}
/// \cond
QStringList QXmppExternalServiceDiscoveryManager::discoveryFeatures() const
{
return { ns_external_service_discovery };
}
/// \endcond
|