mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-14 14:23:43 +00:00
101 lines
2.9 KiB
Odin
101 lines
2.9 KiB
Odin
package vendor_curl
|
|
|
|
import c "core:c/libc"
|
|
|
|
/* Flag bits in the curl_blob struct: */
|
|
BLOB_COPY :: blob_flags{.COPY} /* tell libcurl to copy the data */
|
|
BLOB_NOCOPY :: blob_flags{} /* tell libcurl to NOT copy the data */
|
|
|
|
blob_flags :: distinct bit_set[blob_flag; c.uint]
|
|
blob_flag :: enum c.uint {
|
|
COPY = 0,
|
|
}
|
|
|
|
blob :: struct {
|
|
data: rawptr,
|
|
len: c.size_t,
|
|
flags: blob_flags, /* bit 0 is defined, the rest are reserved and should be
|
|
left zeroes */
|
|
}
|
|
|
|
@(default_calling_convention="c", link_prefix="curl_")
|
|
foreign lib {
|
|
easy_init :: proc() -> ^CURL ---
|
|
easy_setopt :: proc(curl: ^CURL, option: option, #c_vararg args: ..any) -> code ---
|
|
easy_perform :: proc(curl: ^CURL) -> code ---
|
|
easy_cleanup :: proc(curl: ^CURL) ---
|
|
|
|
|
|
/*
|
|
* NAME curl_easy_getinfo()
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* Request internal information from the curl session with this function.
|
|
* The third argument MUST be pointing to the specific type of the used option
|
|
* which is documented in each manpage of the option. The data pointed to
|
|
* will be filled in accordingly and can be relied upon only if the function
|
|
* returns CURLE_OK. This function is intended to get used *AFTER* a performed
|
|
* transfer, all results from this function are undefined until the transfer
|
|
* is completed.
|
|
*/
|
|
easy_getinfo :: proc(curl: ^CURL, info: INFO, #c_vararg args: ..any) -> code ---
|
|
|
|
|
|
/*
|
|
* NAME curl_easy_duphandle()
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* Creates a new curl session handle with the same options set for the handle
|
|
* passed in. Duplicating a handle could only be a matter of cloning data and
|
|
* options, internal state info and things like persistent connections cannot
|
|
* be transferred. It is useful in multithreaded applications when you can run
|
|
* curl_easy_duphandle() for each new thread to avoid a series of identical
|
|
* curl_easy_setopt() invokes in every thread.
|
|
*/
|
|
easy_duphandle :: proc(curl: ^CURL) -> ^CURL ---
|
|
|
|
/*
|
|
* NAME curl_easy_reset()
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* Re-initializes a curl handle to the default values. This puts back the
|
|
* handle to the same state as it was in when it was just created.
|
|
*
|
|
* It does keep: live connections, the Session ID cache, the DNS cache and the
|
|
* cookies.
|
|
*/
|
|
easy_reset :: proc(curl: ^CURL) ---
|
|
|
|
/*
|
|
* NAME curl_easy_recv()
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* Receives data from the connected socket. Use after successful
|
|
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
|
|
*/
|
|
easy_recv :: proc(curl: ^CURL, buffer: rawptr, buflen: c.size_t, n: ^c.size_t) -> code ---
|
|
|
|
/*
|
|
* NAME curl_easy_send()
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* Sends data over the connected socket. Use after successful
|
|
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
|
|
*/
|
|
easy_send :: proc(curl: ^CURL, buffer: rawptr, buflen: c.size_t, n: ^c.size_t) -> code ---
|
|
|
|
|
|
/*
|
|
* NAME curl_easy_upkeep()
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* Performs connection upkeep for the given session handle.
|
|
*/
|
|
easy_upkeep :: proc(curl: ^CURL) -> code ---
|
|
} |