From a1ea72d719b63a4d2b6421ce2e53b7e3ab12a8a1 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 23 Feb 2024 18:50:28 +0300 Subject: Add curl constructors which allow to adjust curl command line --- libbutl/curl.ixx | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'libbutl/curl.ixx') diff --git a/libbutl/curl.ixx b/libbutl/curl.ixx index b7f6496..6dcfe13 100644 --- a/libbutl/curl.ixx +++ b/libbutl/curl.ixx @@ -16,6 +16,7 @@ namespace butl O&& out, E&& err, method_type m, + flags fs, const std::string& url, A&&... options) : curl ([] (const char* [], std::size_t) {}, @@ -23,8 +24,80 @@ namespace butl std::forward (out), std::forward (err), m, + fs, url, std::forward (options)...) { } + + template + inline curl:: + curl (const C& cmdc, + I&& in, + O&& out, + E&& err, + method_type m, + const std::string& url, + A&&... options) + : curl (cmdc, + std::forward (in), + std::forward (out), + std::forward (err), + m, + flags::none, + url, + std::forward (options)...) + { + } + + template + inline curl:: + curl (I&& in, + O&& out, + E&& err, + method_type m, + const std::string& url, + A&&... options) + : curl (std::forward (in), + std::forward (out), + std::forward (err), + m, + flags::none, + url, + std::forward (options)...) + { + } + + inline curl::flags + operator&= (curl::flags& x, curl::flags y) + { + return x = static_cast (static_cast (x) & + static_cast (y)); + } + + inline curl::flags + operator|= (curl::flags& x, curl::flags y) + { + return x = static_cast (static_cast (x) | + static_cast (y)); + } + + inline curl::flags + operator& (curl::flags x, curl::flags y) + { + return x &= y; + } + + inline curl::flags + operator| (curl::flags x, curl::flags y) + { + return x |= y; + } } -- cgit v1.1