curl-cpp
static c++17 wrapper for curl with -fno-exceptions support
|
1 #ifndef __curl_cpp_curl_easy_HPP__
2 # define __curl_cpp_curl_easy_HPP__
9 # include "utils/curl_slist.hpp"
11 # include <curl/curl.h>
55 char *curl_easy =
nullptr;
67 const long error_code;
69 Exception(
long err_code_arg);
72 auto what()
const noexcept ->
const char*;
103 void set_verbose(FILE *stderr_stream_arg)
noexcept;
145 using writeback_t = std::size_t (*)(
char *buffer, std::size_t _, std::size_t size,
void *userp);
150 void set_writeback(writeback_t writeback,
void *userp)
noexcept;
161 auto set_url(
const char *url)
noexcept -> Ret_except<
void, std::bad_alloc>;
215 auto set_cookie(
const char *cookies)
noexcept ->
420 auto set_useragent(
const char *useragent)
noexcept -> Ret_except<
void, std::bad_alloc>;
426 auto set_encoding(
const char *encoding)
noexcept -> Ret_except<
void, std::bad_alloc>;
432 auto set_interface(
const char *value)
noexcept -> Ret_except<
void, std::bad_alloc>;
439 auto set_ip_addr_only(
const char *ip_addr)
noexcept -> Ret_except<
void, std::bad_alloc>;
518 void request_post(
const void *data, std::size_t len)
noexcept;
539 using readback_t = std::size_t (*)(
char *buffer, std::size_t size, std::size_t nitems,
void *userp);
545 void request_post(readback_t readback,
void *userp, std::size_t len = -1)
noexcept;
553 unsupported_protocol,
555 cannot_resolve_proxy,
558 remote_access_denied,
564 ssl_pinned_pubkey_mismatch,
566 using perform_ret_t = Ret_except<
code, std::bad_alloc, std::invalid_argument, std::length_error,
570 auto perform()
noexcept -> perform_ret_t;
638 long get_response_code()
const noexcept;
728 template <
class String>
731 set_writeback([](
char *buffer, std::size_t _, std::size_t size,
void *ptr) {
732 auto &response = *
static_cast<String*>(ptr);
733 response.append(buffer, buffer + size);
744 template <
class String,
class size_type>
747 set_writeback([](
char *buffer, std::size_t _, std::size_t size,
void *ptr) {
748 auto &args = *
static_cast<std::pair<String, size_type>*>(ptr);
749 auto &response = args.first;
750 auto &requested_len = args.second;
752 auto str_size = response.size();
753 if (str_size < requested_len)
754 response.append(buffer, buffer + std::min(size, requested_len - str_size));
788 static auto check_perform(
long code,
const char *fname)
noexcept -> perform_ret_t;
auto set_url(const char *url) noexcept -> Ret_except< void, std::bad_alloc >
auto erase_all_session_cookies_in_mem() noexcept -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
auto set_cookielist(const char *cookie) noexcept -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
void setup_establish_connection_only() noexcept
void set_verbose(FILE *stderr_stream_arg) noexcept
auto set_useragent(const char *useragent) noexcept -> Ret_except< void, std::bad_alloc >
auto reload_cookies_from_file() noexcept -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
auto getinfo_effective_url() const noexcept -> const char *
void set_follow_location(long redir) noexcept
auto set_cookie(const char *cookies) noexcept -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
std::size_t getinfo_sizeof_uploaded() const noexcept
auto set_ip_addr_only(const char *ip_addr) noexcept -> Ret_except< void, std::bad_alloc >
auto getinfo_redirect_url() const noexcept -> const char *
void request_get() noexcept
static std::size_t get_error_buffer_size() noexcept
void request_post(const void *data, std::size_t len) noexcept
auto set_encoding(const char *encoding) noexcept -> Ret_except< void, std::bad_alloc >
auto set_read_writeback(std::pair< String, size_type > &arg) noexcept
auto flush_cookies_to_jar() noexcept -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
auto set_pause(PauseOptions option) noexcept -> Ret_except< code, std::bad_alloc, Exception >
auto erase_all_cookies_in_mem() noexcept -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
auto set_interface(const char *value) noexcept -> Ret_except< void, std::bad_alloc >
std::size_t getinfo_transfer_time() const noexcept
auto getinfo_cookie_list() const noexcept -> Ret_except< utils::slist, curl::NotBuiltIn_error >
auto pin_publickey(const char *pubkey) -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
void set_private(void *userp) noexcept
auto set_cookiefile(const char *cookie_filename) noexcept -> Ret_except< void, curl::NotBuiltIn_error >
void set_url(const Url_ref_t &url) noexcept
void set_timeout(unsigned long timeout) noexcept
void set_writeback(writeback_t writeback, void *userp) noexcept
void request_post(readback_t readback, void *userp, std::size_t len=-1) noexcept
std::size_t getinfo_sizeof_response_header() const noexcept
void start_new_cookie_session() noexcept
void set_nobody(bool enable) noexcept
auto set_readall_writeback(String &response) noexcept
auto set_cookiejar(const char *cookie_filename) noexcept -> Ret_except< void, std::bad_alloc, curl::NotBuiltIn_error >
std::size_t getinfo_sizeof_response_body() const noexcept
auto get_active_socket() const noexcept -> curl_socket_t
void set_error_buffer(char *error_buffer) noexcept
void set_http_header(const utils::slist &l, header_option option=header_option::unspecified) noexcept
void * get_private() const noexcept
std::size_t getinfo_sizeof_request() const noexcept