summaryrefslogtreecommitdiff
path: root/internal/curl/ccurl/ccurl.ha
blob: 9c8b19dbfefa94f55cef2e9dde4ebd81872fd857 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
use types::c;

export type CURLM = opaque;
export type CURL = opaque;
export type CURLMcode = int;
export type CURLcode = int;
export type CURLINFO = int;

export def CURLOPT_URL = 10002;
export def CURLOPT_WRITEFUNCTION = 20011;
export def CURLOPT_WRITEDATA = 10001;

export def CURLINFO_LONG = 0x200000;
export def CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2;

export @symbol("curl_multi_init") fn curl_multi_init() nullable *CURLM;
export @symbol("curl_multi_cleanup") fn curl_multi_cleanup(handle: nullable *CURLM) CURLMcode;
export @symbol("curl_multi_add_handle") fn curl_multi_add_handle(multi_handle: nullable *CURLM, easy_handle: nullable *CURL) CURLMcode;
export @symbol("curl_multi_remove_handle") fn curl_multi_remove_handle(multi_handle: nullable *CURLM, easy_handle: nullable *CURL) CURLMcode;
export @symbol("curl_easy_init") fn curl_easy_init() nullable *CURL;
export @symbol("curl_easy_cleanup") fn curl_easy_cleanup(handle: nullable *CURL) void;

export type write_callback = fn(ptr: *c::char, sz: c::ssize, nmemb: c::ssize, userdata: *opaque) c::ssize;
export @symbol("curl_easy_setopt") fn curl_easy_setopt(
	handle: nullable *CURL,
	option: int,
	parameter: const *c::char,
) CURLcode;

export @symbol("curl_easy_setopt") fn curl_easy_setopt_writefunction(
	handle: nullable *CURL,
	option: int,
	parameter: *write_callback,
) CURLcode;

export @symbol("curl_easy_setopt") fn curl_easy_setopt_writedata(
	handle: nullable *CURL,
	option: int,
	parameter: *opaque,
) CURLcode;

//export @symbol("curl_easy_setopt") fn curl_easy_setopt(
//	handle: nullable *CURL,
//	option: int,
//	parameter: (const *c::char | nullable opaque)
//) CURLcode;

export @symbol("curl_multi_perform") fn curl_multi_perform(multi_handle: nullable *CURLM, running_handles: *int) CURLMcode;
export @symbol("curl_easy_perform") fn curl_easy_perform(easy_handle: nullable *CURL) CURLcode;
export @symbol("curl_easy_getinfo") fn curl_easy_getinfo(
	easy_handle: nullable *CURL,
	info: CURLINFO,
	code: nullable *c::long
) CURLcode;