1 /* 2 SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #ifndef QTHELPNETWORK_H 8 #define QTHELPNETWORK_H 9 10 #include "debug.h" 11 12 #include <QNetworkReply> 13 #include <QTimer> 14 #include <QHelpEngine> 15 #include <QMimeDatabase> 16 #include <QMimeType> 17 18 class HelpNetworkReply : public QNetworkReply 19 { 20 Q_OBJECT 21 public: 22 HelpNetworkReply(const QNetworkRequest &request, const QByteArray &fileData, const QString &mimeType); 23 abort()24 void abort() override {} bytesAvailable()25 qint64 bytesAvailable() const override { return data.length() + QNetworkReply::bytesAvailable(); } 26 27 protected: 28 qint64 readData(char *data, qint64 maxlen) override; 29 30 private: 31 QByteArray data; 32 qint64 origLen; 33 }; 34 35 class HelpNetworkAccessManager : public QNetworkAccessManager 36 { 37 Q_OBJECT 38 public: 39 explicit HelpNetworkAccessManager(QHelpEngineCore *engine, QObject *parent = nullptr); 40 ~HelpNetworkAccessManager() override; 41 42 protected: 43 QNetworkReply *createRequest(Operation op, 44 const QNetworkRequest &request, QIODevice *outgoingData = nullptr) override; 45 46 private: 47 QHelpEngineCore *m_helpEngine; 48 }; 49 50 #endif 51