22#ifndef BACKENDS_NETWORKING_HTTP_EMSCRIPTEN_NETWORKREADSTREAMEMSCRIPTEN_H
23#define BACKENDS_NETWORKING_HTTP_EMSCRIPTEN_NETWORKREADSTREAMEMSCRIPTEN_H
27#include "backends/networking/http/networkreadstream.h"
31extern void NetworkReadStreamEmscripten_init(
void);
32extern int NetworkReadStreamEmscripten_fetch(
const char *method,
const char *url,
33 char **requestHeaders,
34 const char *requestData,
size_t requestDataSize,
35 char **formFields =
nullptr,
36 char **formFiles =
nullptr);
37extern void NetworkReadStreamEmscripten_close(
int fetchId);
40extern char *NetworkReadStreamEmscripten_getDataPtr(
int fetchId);
41extern char *NetworkReadStreamEmscripten_getErr(
int fetchId);
42extern uint32 NetworkReadStreamEmscripten_getNumBytes(
int fetchId);
43extern char **NetworkReadStreamEmscripten_responseHeadersArray(
int fetchId);
44extern unsigned short NetworkReadStreamEmscripten_status(
int fetchId);
45extern uint32 NetworkReadStreamEmscripten_totalBytes(
int fetchId);
46extern bool NetworkReadStreamEmscripten_completed(
int fetchId);
47extern bool NetworkReadStreamEmscripten_hasError(
int fetchId);
52class NetworkReadStreamEmscripten :
public NetworkReadStream {
56 RequestHeaders *_headersList;
60 static char **buildHeadersArray(
const RequestHeaders *headersList);
63 static void cleanupStringArray(
char **array);
66 void setupBufferContents(
const byte *buffer, uint32 bufferSize,
bool uploading,
bool usingPatch,
bool post);
70 NetworkReadStreamEmscripten(
const char *url, RequestHeaders *headersList,
const Common::String &postFields,
bool uploading,
bool usingPatch,
bool keepAlive,
long keepAliveIdle,
long keepAliveInterval);
74 NetworkReadStreamEmscripten(
const char *url, RequestHeaders *headersList,
const byte *buffer, uint32 bufferSize,
bool uploading,
bool usingPatch,
bool post,
bool keepAlive,
long keepAliveIdle,
long keepAliveInterval);
76 ~NetworkReadStreamEmscripten()
override;
80 bool reuse(
const char *url, RequestHeaders *headersList,
const Common::String &postFields,
bool uploading =
false,
bool usingPatch =
false)
override {
return false; }
82 bool reuse(
const char *url, RequestHeaders *headersList,
const byte *buffer, uint32 bufferSize,
bool uploading =
false,
bool usingPatch =
false,
bool post =
false)
override {
return false; }
84 bool hasError()
const override;
85 const char *getError()
const override;
86 double getProgress()
const override;
87 long httpResponseCode()
const override;
91 uint32 read(
void *dataPtr, uint32 dataSize)
override;
92 bool eos()
const override;