24 #include <curl/curl.h>
42 CURLM *MultiHandle{
nullptr};
43 CURL *CurlHandle{
nullptr};
45 #ifdef STDSCHEDULER_USE_EVENTS
47 HANDLE Event{
nullptr};
49 std::map<SOCKET, int> sockets;
54 std::string headerAcceptedResponseType =
"";
62 size_t iDownloadedSize{0}, iTotalSize{0};
69 static size_t SWriteCallback(
char *ptr,
size_t size,
size_t nmemb,
void *userdata);
70 size_t WriteCallback(
char *ptr,
size_t realsize);
71 static int SProgressCallback(
void *clientp, int64_t dltotal, int64_t dlnow, int64_t ultotal, int64_t ulnow);
72 int ProgressCallback(int64_t dltotal, int64_t dlnow, int64_t ultotal, int64_t ulnow);
73 static int SSocketCallback(CURL *easy,
SOCKET s,
int what,
void *userp,
void *socketp);
74 int SocketCallback(CURL *easy,
SOCKET s,
int what,
void *socketp);
86 bool isBusy()
const {
return !!CurlHandle; }
87 bool isConnected()
const {
return iDownloadedSize + iTotalSize != 0; }
99 void Cancel(
const char *szReason);
102 bool SetServer(
const char *szServerAddress);
109 bool Execute(
int iMaxTime = -1, pollfd * readyfds =
nullptr)
override;
111 #ifdef STDSCHEDULER_USE_EVENTS
112 HANDLE GetEvent()
override {
return Event; }
114 void GetFDs(std::vector<struct pollfd> &)
override;
const int C4HTTPQueryTimeout
size_t SLen(const char *sptr)
void SetError(const char *strnError)
void SetExpectedResponseType(ResponseType type)
size_t getTotalSize() const
bool Execute(int iMaxTime=-1, pollfd *readyfds=nullptr) override
virtual const char * GetError() const
bool SetServer(const char *szServerAddress)
bool Query(const StdBuf &Data, bool fBinary)
const C4NetIO::addr_t & getServerAddress() const
void GetFDs(std::vector< struct pollfd > &) override
bool Query(const char *szData, bool fBinary)
const char * getResultString() const
C4TimeMilliseconds GetNextTick(C4TimeMilliseconds tNow) override
size_t getDownloadedSize() const
const StdBuf & getResultBin() const
StdCopyStrBuf ResultString
const char * getURL() const
const char * getServerName() const
void SetNotify(class C4InteractiveThread *pnNotify)
void Cancel(const char *szReason)
const char * getData() const