5#ifndef QNETWORKREPLYWASMIMPL_H
6#define QNETWORKREPLYWASMIMPL_H
23#include <QtCore/qfile.h>
25#include <private/qtnetworkglobal_p.h>
26#include <private/qabstractfileengine_p.h>
28#include <emscripten.h>
29#include <emscripten/fetch.h>
45 virtual void abort()
override;
48 virtual void close()
override;
55 void setup(QNetworkAccessManager::Operation op,
const QNetworkRequest &request,
56 QIODevice *outgoingData);
71
72
73
74
75
76
77
78
99 static void setReplyAttributes(quintptr data,
int statusCode,
const QString &statusReason);
101 void emitReplyError(QNetworkReply::NetworkError errorCode,
const QString &);
108 void setup(QNetworkAccessManager::Operation op,
const QNetworkRequest &request,
109 QIODevice *outgoingData);
133 static void stateChange(emscripten_fetch_t *fetch);
142 Q_DECLARE_PUBLIC(QNetworkReplyWasmImpl)
qint64 downloadBufferReadPosition
std::shared_ptr< QRingBuffer > outgoingDataBuffer
qint64 downloadBufferCurrentSize
static void setReplyAttributes(quintptr data, int statusCode, const QString &statusReason)
~QNetworkReplyWasmImplPrivate()
void setup(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
static void downloadFailed(emscripten_fetch_t *fetch)
QNetworkReplyWasmImplPrivate()
static void downloadSucceeded(emscripten_fetch_t *fetch)
void emitReplyError(QNetworkReply::NetworkError errorCode, const QString &)
QByteArray downloadBuffer
emscripten_fetch_t * m_fetch
void setStatusCode(int status, const QByteArray &statusText)
void _q_bufferOutgoingData()
std::shared_ptr< QAtomicInt > pendingDownloadData
std::shared_ptr< QAtomicInt > pendingDownloadProgress
void headersReceived(const QByteArray &buffer)
static void stateChange(emscripten_fetch_t *fetch)
QNetworkAccessManagerPrivate * managerPrivate
void emitDataReadProgress(qint64 done, qint64 total)
FetchContext * m_fetchContext
void _q_bufferOutgoingDataFinished()
static QNetworkReply::NetworkError statusCodeFromHttp(int httpStatusCode, const QUrl &url)
static void downloadProgress(emscripten_fetch_t *fetch)
void dataReceived(const QByteArray &buffer)
qint64 size() const override
For open random-access devices, this function returns the size of the device.
virtual qint64 bytesAvailable() const override
Returns the number of bytes that are available for reading.
virtual qint64 readData(char *data, qint64 maxlen) override
virtual void abort() override
Aborts the operation immediately and closes any network connections still open.
void setup(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
virtual bool isSequential() const override
virtual void close() override
Closes this device for reading.
constexpr int getArraySize(int factor)
static int parseHeaderName(const QByteArray &headerName)
The FetchContext class ensures the requestData object remains valid while a fetch operation is pendin...
FetchContext(QNetworkReplyWasmImplPrivate *networkReply)
QNetworkReplyWasmImplPrivate * reply