QXmpp Version: 1.15.0
Loading...
Searching...
No Matches
QXmppMovedManager.h
1// SPDX-FileCopyrightText: 2024 Filipe Azevedo <pasnox@gmail.com>
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#ifndef QXMPPMOVEDMANAGER_H
6#define QXMPPMOVEDMANAGER_H
7
8#include "QXmppClientExtension.h"
9#include "QXmppSendResult.h"
10#include "QXmppTask.h"
11
12class QXmppPresence;
13struct QXmppError;
14class QXmppMovedManagerPrivate;
15
16class QXMPP_EXPORT QXmppMovedManager : public QXmppClientExtension
17{
18 Q_OBJECT
20
21public:
22 using Result = std::variant<QXmpp::Success, QXmppError>;
23
24 explicit QXmppMovedManager();
25 ~QXmppMovedManager() override;
26
27 QStringList discoveryFeatures() const override;
28
29 bool supportedByServer() const;
30 Q_SIGNAL void supportedByServerChanged();
31
32 QXmppTask<Result> publishStatement(QString newBareJid);
33 QXmppTask<Result> verifyStatement(QString oldBareJid, QString newBareJid);
34
35 QXmppTask<QXmpp::SendResult> notifyContact(const QString &contactBareJid, const QString &oldBareJid, bool sensitive = true, const QString &reason = {});
36
37protected:
39 void onRegistered(QXmppClient *client) override;
40 void onUnregistered(QXmppClient *client) override;
42
43private:
44 QXmppTask<QXmppPresence> processSubscriptionRequest(QXmppPresence presence);
45
46 void setSupportedByServer(bool supportedByServer);
47 void resetCachedData();
48
49 const std::unique_ptr<QXmppMovedManagerPrivate> d;
50
51 friend class QXmppRosterManager;
52 friend class tst_QXmppMovedManager;
53};
54
55#endif // QXMPPMOVEDMANAGER_H
virtual QStringList discoveryFeatures() const
Definition QXmppClientExtension.cpp:22
virtual void onUnregistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:95
virtual void onRegistered(QXmppClient *client)
Definition QXmppClientExtension.cpp:85
QXmppClientExtension()
Definition QXmppClientExtension.cpp:12
Main class for starting and managing connections to XMPP servers.
Definition QXmppClient.h:62
bool supportedByServer
Definition QXmppMovedManager.h:19
std::variant< QXmpp::Success, QXmppError > Result
Definition QXmppMovedManager.h:22
QXmppTask< Result > publishStatement(QString newBareJid)
Definition QXmppMovedManager.cpp:168
QXmppTask< Result > verifyStatement(QString oldBareJid, QString newBareJid)
Definition QXmppMovedManager.cpp:184
Q_SIGNAL void supportedByServerChanged()
QXmppTask< QXmpp::SendResult > notifyContact(const QString &contactBareJid, const QString &oldBareJid, bool sensitive=true, const QString &reason={})
Definition QXmppMovedManager.cpp:235
QXmppMovedManager()
Definition QXmppMovedManager.cpp:127
The QXmppPresence class represents an XMPP presence stanza.
Definition QXmppPresence.h:22
The QXmppRosterManager class provides access to a connected client's roster.
Definition QXmppRosterManager.h:84
Definition QXmppTask.h:330
Definition QXmppError.h:17