62 void setFile(
const std::string &filename,
63 std::optional<unsigned long> adler32 = {});
88 static unsigned long fadler32(FILE *file);
92 curl_off_t dltotal, curl_off_t dlnow,
93 curl_off_t ultotal, curl_off_t ulnow);
95 static size_t writeBuffer(
char *ptr,
size_t size,
size_t nmemb,
char * mBuffer
Buffer for files downloaded to memory.
std::optional< unsigned long > mAdler
void setFile(const std::string &filename, std::optional< unsigned long > adler32={})
std::string_view getBuffer() const
Returns a view on the downloaded data.
void noCache()
Convience method for adding no-cache headers.
void cancel()
Cancels the download.
char mError[CURL_ERROR_SIZE]
static int downloadProgress(void *clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow)
A libcurl callback for reporting progress.
static size_t writeBuffer(char *ptr, size_t size, size_t nmemb, void *stream)
A libcurl callback for writing to memory.
static unsigned long fadler32(FILE *file)
Calculates the Alder-32 checksum for the given file.
ThreadSafe< State > mState
static int downloadThread(void *ptr)
void addHeader(const char *header)
const char * getError() const
size_t mDownloadedBytes
Byte count currently downloaded in mMemoryBuffer.
bool start()
Starts the download thread.
A template class for wrapping data that is accessed by multiple threads.
The network communication layer.