11 #include "threads/CriticalSection.h" 16 #include <sys/types.h> 17 #include <type_traits> 20 #define CURL CURL_HANDLE 21 #include <curl/curl.h> 32 CURLcode global_init(
long flags);
33 void global_cleanup();
34 CURL_HANDLE* easy_init();
35 template<
typename... Args>
36 CURLcode easy_setopt(CURL_HANDLE* handle, CURLoption option, Args... args)
38 return curl_easy_setopt(handle, option, std::forward<Args>(args)...);
40 CURLcode easy_perform(CURL_HANDLE* handle);
41 CURLcode easy_pause(CURL_HANDLE* handle,
int bitmask);
42 void easy_reset(CURL_HANDLE* handle);
43 template<
typename... Args>
44 CURLcode easy_getinfo(CURL_HANDLE* curl, CURLINFO info, Args... args)
46 return curl_easy_getinfo(curl, info, std::forward<Args>(args)...);
48 void easy_cleanup(CURL_HANDLE* handle);
49 virtual CURL_HANDLE* easy_duphandle(CURL_HANDLE* handle);
50 CURLM* multi_init(
void);
51 CURLMcode multi_add_handle(CURLM* multi_handle, CURL_HANDLE* easy_handle);
52 CURLMcode multi_perform(CURLM* multi_handle,
int* running_handles);
53 CURLMcode multi_remove_handle(CURLM* multi_handle, CURL_HANDLE* easy_handle);
54 CURLMcode multi_fdset(CURLM* multi_handle,
59 CURLMcode multi_timeout(CURLM* multi_handle,
long* timeout);
60 CURLMsg* multi_info_read(CURLM* multi_handle,
int* msgs_in_queue);
61 CURLMcode multi_cleanup(CURLM* handle);
62 curl_slist* slist_append(curl_slist* list,
const char* to_append);
63 void slist_free_all(curl_slist* list);
64 const char* easy_strerror(CURLcode
code);
73 void easy_acquire(
const char* protocol,
75 CURL_HANDLE** easy_handle,
76 CURLM** multi_handle);
77 void easy_release(CURL_HANDLE** easy_handle, CURLM** multi_handle);
78 void easy_duplicate(CURL_HANDLE* easy,
80 CURL_HANDLE** easy_out,
82 CURL_HANDLE* easy_duphandle(CURL_HANDLE* easy_handle)
override;
90 std::chrono::time_point<std::chrono::steady_clock>
92 std::string m_protocol;
93 std::string m_hostname;
99 typedef std::vector<SSession> VEC_CURLSESSIONS;
101 VEC_CURLSESSIONS m_sessions;
102 CCriticalSection m_critSection;
Definition: DllLibCurl.cpp:17
Definition: DllLibCurl.h:27
Definition: DllLibCurl.h:67
Definition: DllLibCurl.h:88
Definition: inftrees.h:24