lib/curl/Multi: add SetSocketFunction(), SetTimerFunction()
This commit is contained in:
parent
959826d1d1
commit
f7790430a0
|
@ -84,11 +84,8 @@ CurlGlobal::CurlGlobal(EventLoop &_loop)
|
||||||
:defer_read_info(_loop, BIND_THIS_METHOD(ReadInfo)),
|
:defer_read_info(_loop, BIND_THIS_METHOD(ReadInfo)),
|
||||||
timeout_event(_loop, BIND_THIS_METHOD(OnTimeout))
|
timeout_event(_loop, BIND_THIS_METHOD(OnTimeout))
|
||||||
{
|
{
|
||||||
multi.SetOption(CURLMOPT_SOCKETFUNCTION, CurlSocket::SocketFunction);
|
multi.SetSocketFunction(CurlSocket::SocketFunction, this);
|
||||||
multi.SetOption(CURLMOPT_SOCKETDATA, this);
|
multi.SetTimerFunction(TimerFunction, this);
|
||||||
|
|
||||||
multi.SetOption(CURLMOPT_TIMERFUNCTION, TimerFunction);
|
|
||||||
multi.SetOption(CURLMOPT_TIMERDATA, this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -61,6 +61,18 @@ public:
|
||||||
throw std::runtime_error(curl_multi_strerror(code));
|
throw std::runtime_error(curl_multi_strerror(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetSocketFunction(int (*function)(CURL *easy, curl_socket_t s, int what, void *clientp, void *socketp) noexcept,
|
||||||
|
void *clientp) {
|
||||||
|
SetOption(CURLMOPT_SOCKETFUNCTION, function);
|
||||||
|
SetOption(CURLMOPT_SOCKETDATA, clientp);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetTimerFunction(int (*function)(CURLM *multi, long timeout_ms, void *clientp) noexcept,
|
||||||
|
void *clientp) {
|
||||||
|
SetOption(CURLMOPT_TIMERFUNCTION, function);
|
||||||
|
SetOption(CURLMOPT_TIMERDATA, clientp);
|
||||||
|
}
|
||||||
|
|
||||||
void Add(CURL *easy) {
|
void Add(CURL *easy) {
|
||||||
auto code = curl_multi_add_handle(handle, easy);
|
auto code = curl_multi_add_handle(handle, easy);
|
||||||
if (code != CURLM_OK)
|
if (code != CURLM_OK)
|
||||||
|
|
Loading…
Reference in New Issue