30 #ifndef CURL_REQUEST_HXX
31 #define CURL_REQUEST_HXX
58 std::multimap<std::string, std::string> headers;
68 std::exception_ptr postponed_error;
71 char error_buffer[CURL_ERROR_SIZE];
73 bool registered =
false;
121 void Done(CURLcode result);
130 void FinishHeaders();
133 size_t DataReceived(
const void *ptr,
size_t size);
138 static size_t _HeaderFunction(
void *ptr,
size_t size,
size_t nmemb,
142 static size_t WriteFunction(
void *ptr,
size_t size,
size_t nmemb,
146 void RunDeferred()
override;
CurlRequest(CurlGlobal &_global, const char *url, CurlResponseHandler &_handler)
To start sending the request, call Start().
void SetOption(CURLoption option, T value)
An OO wrapper for a "CURL*" (a libCURL "easy" handle).
Defer execution of an event into an EventLoop.
void Start()
Register this request via CurlGlobal::Add(), which starts the request.
CurlResponseHandler::OnData() shall throw this to pause the stream.
void Stop()
Unregister this request via CurlGlobal::Remove().
void SetOption(CURLoption option, T value)
CurlRequest & operator=(const CurlRequest &)=delete
Manager for the global CURLM object.
void Done(CURLcode result)
A HTTP request is finished.