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