QXmpp  Version: 1.15.1
QXmppClient_p.h
1 // SPDX-FileCopyrightText: 2020 Manjeet Dahiya <manjeetdahiya@gmail.com>
2 // SPDX-FileCopyrightText: 2020 Linus Jahn <lnj@kaidan.im>
3 // SPDX-FileCopyrightText: 2023 Melvin Keskin <melvo@olomono.de>
4 //
5 // SPDX-License-Identifier: LGPL-2.1-or-later
6 
7 //
8 // W A R N I N G
9 // -------------
10 //
11 // This file is not part of the QXmpp API.
12 //
13 // This header file may change from version to version without notice,
14 // or even be removed.
15 //
16 // We mean it.
17 //
18 
19 #ifndef QXMPPCLIENT_P_H
20 #define QXMPPCLIENT_P_H
21 
22 #include "QXmppE2eeExtension.h"
23 #include "QXmppOutgoingClient.h"
24 #include "QXmppPresence.h"
25 #include "QXmppSendResult.h"
26 
27 #include <chrono>
28 
29 class QXmppClient;
31 class QXmppLogger;
32 class QTimer;
33 
34 class QXmppClientPrivate
35 {
36 public:
37  QXmppClientPrivate(QXmppClient *qq);
38 
39  void resendPresence();
40 
43  QXmppTask<QXmppClient::IqResult> sendSensitiveIq(QXmppIq iq, std::optional<QXmppSendStanzaParams> params);
44 
46  QXmppPresence clientPresence;
47  QList<QXmppClientExtension *> extensions;
48  QXmppLogger *logger;
50  QXmppOutgoingClient *stream;
51  QVector<QXmpp::StreamError> ignoredStreamErrors;
52 
53  QXmppE2eeExtension *encryptionExtension;
54 
55  // reconnection
56  bool receivedConflict;
57  int reconnectionTries;
58  QTimer *reconnectionTimer;
59 
60  void addProperCapability(QXmppPresence &presence);
61  std::chrono::milliseconds getNextReconnectTime() const;
62 
63  static QStringList discoveryFeatures();
64  void onErrorOccurred(const QString &text, const QXmppOutgoingClient::ConnectionError &err, QXmppClient::Error oldError);
65 
66 private:
67  QXmppClient *q;
68 };
69 
70 #endif // QXMPPCLIENT_P_H
Definition: QXmppE2eeExtension.h:22
Definition: QXmppTask.h:67
Error
Definition: QXmppClient.h:76
The QXmppLogger class represents a sink for logging messages.
Definition: QXmppLogger.h:28
The QXmppPresence class represents an XMPP presence stanza.
Definition: QXmppPresence.h:21
The QXmppIq class is the base class for all IQs.
Definition: QXmppIq.h:22
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition: QXmppClientExtension.h:31
Main class for starting and managing connections to XMPP servers.
Definition: QXmppClient.h:61