QXmpp Version: 1.15.1
Loading...
Searching...
No Matches
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
29class QXmppClient;
31class QXmppLogger;
32class QTimer;
33
34class QXmppClientPrivate
35{
36public:
37 QXmppClientPrivate(QXmppClient *qq);
38
39 void resendPresence();
40
41 QXmppTask<QXmpp::SendResult> sendEncryptedMessage(QXmppTask<QXmppE2eeExtension::MessageEncryptResult> task);
42 QXmppTask<QXmpp::SendResult> sendEncryptedIq(QXmppTask<QXmppE2eeExtension::IqEncryptResult> task);
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
66private:
67 QXmppClient *q;
68};
69
70#endif // QXMPPCLIENT_P_H
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition QXmppClientExtension.h:32
Main class for starting and managing connections to XMPP servers.
Definition QXmppClient.h:62
Error
Definition QXmppClient.h:76
The QXmppLogger class represents a sink for logging messages.
Definition QXmppLogger.h:29