1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QNETWORKREPLYFILEIMPL_P_H
5#define QNETWORKREPLYFILEIMPL_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists for the convenience
12// of the Network Access API. This header file may change from
13// version to version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtNetwork/private/qtnetworkglobal_p.h>
19#include "qnetworkreply.h"
20#include "qnetworkreply_p.h"
21#include "qnetworkaccessmanager.h"
22
23#include <QFile>
24#include <QtCore/qpointer.h>
25#include <private/qabstractfileengine_p.h>
26
27QT_BEGIN_NAMESPACE
28
29class QNetworkReplyFileImplPrivate;
30class QNetworkReplyFileImpl: public QNetworkReply
31{
32 Q_OBJECT
33public:
34 QNetworkReplyFileImpl(QNetworkAccessManager *manager, const QNetworkRequest &req, const QNetworkAccessManager::Operation op);
35 ~QNetworkReplyFileImpl();
36 virtual void abort() override;
37
38 // reimplemented from QNetworkReply
39 virtual void close() override;
40 virtual qint64 bytesAvailable() const override;
41 virtual bool isSequential () const override;
42 qint64 size() const override;
43
44 virtual qint64 readData(char *data, qint64 maxlen) override;
45
46private Q_SLOTS:
47 void fileOpenFinished(bool isOpen);
48
49private:
50 Q_DECLARE_PRIVATE(QNetworkReplyFileImpl)
51};
52
53class QNetworkReplyFileImplPrivate: public QNetworkReplyPrivate
54{
55public:
56 QNetworkReplyFileImplPrivate();
57
58 QNetworkAccessManagerPrivate *managerPrivate;
59 QPointer<QFile> realFile;
60
61 Q_DECLARE_PUBLIC(QNetworkReplyFileImpl)
62};
63
64QT_END_NAMESPACE
65
66// ### move to qnetworkrequest.h
67QT_DECL_METATYPE_EXTERN_TAGGED(QNetworkRequest::KnownHeaders,
68 QNetworkRequest__KnownHeaders, Q_NETWORK_EXPORT)
69
70#endif // QNETWORKREPLYFILEIMPL_P_H
71

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of qtbase/src/network/access/qnetworkreplyfileimpl_p.h