22 #ifndef BACKENDS_NETWORKING_HTTP_CURL_NETWORKREADSTREAMCURL_H 23 #define BACKENDS_NETWORKING_HTTP_CURL_NETWORKREADSTREAMCURL_H 25 #define FORBIDDEN_SYMBOL_ALLOW_ALL 27 #include "backends/networking/http/networkreadstream.h" 28 #include "common/hash-str.h" 29 #include "common/hashmap.h" 30 #include "common/memstream.h" 31 #include "common/path.h" 32 #include "common/str.h" 33 #include "common/stream.h" 35 #include <curl/curl.h> 43 struct curl_slist *_headersSlist;
47 uint64 _progressDownloaded, _progressTotal;
48 bool _requestComplete;
51 const byte *_sendingContentsBuffer;
52 uint32 _sendingContentsSize;
53 uint32 _sendingContentsPos;
57 static struct curl_slist *requestHeadersToSlist(
const RequestHeaders *headersList);
59 static size_t curlDataCallback(
char *d,
size_t n,
size_t l,
void *p);
60 static size_t curlReadDataCallback(
char *d,
size_t n,
size_t l,
void *p);
61 static size_t curlHeadersCallback(
char *d,
size_t n,
size_t l,
void *p);
62 static int curlProgressCallbackOlder(
void *p,
double dltotal,
double dlnow,
double ultotal,
double ulnow);
65 CURL *getEasyHandle()
const {
return _easy; }
67 void setupBufferContents(
const byte *buffer, uint32 bufferSize,
bool uploading,
bool usingPatch,
bool post);
75 NetworkReadStreamCurl(
const char *url,
RequestHeaders *headersList,
const byte *buffer, uint32 bufferSize,
bool uploading,
bool usingPatch,
bool post,
bool keepAlive,
long keepAliveIdle,
long keepAliveInterval);
78 void finished(CURLcode errorCode);
88 bool reuse(
const char *url,
RequestHeaders *headersList,
const byte *buffer, uint32 bufferSize,
bool uploading =
false,
bool usingPatch =
false,
bool post =
true)
override;
93 uint32
read(
void *dataPtr, uint32 dataSize)
override;
105 bool hasError()
const override;
106 const char *getError()
const override;
Definition: scummvmcloud.h:32
bool reuse(const char *url, RequestHeaders *headersList, const Common::String &postFields, bool uploading=false, bool usingPatch=false) override
uint32 read(void *dataPtr, uint32 dataSize) override
void setProgress(uint64 downloaded, uint64 total)
long httpResponseCode() const override
Definition: networkreadstream-curl.h:39
Common::HashMap< Common::String, Common::String > responseHeadersMap() const override
Definition: memstream.h:283
Definition: networkreadstream.h:37
double getProgress() const override
Common::String currentLocation() const override