aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppExternalServiceDiscoveryManager.h
blob: 79f5f6a17dc9c86495c381e2c226ad267e6f17eb (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
// 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