aboutsummaryrefslogtreecommitdiff
path: root/butl/curl.txx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-05-01 16:08:43 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-05-01 16:59:24 +0300
commit61377c582e0f2675baa5f5e6e30a35d1a4164b33 (patch)
tree11cdca992834d7f7f197f72856712fbcb3020e3d /butl/curl.txx
parent442c1a6790e52baa0c081f310d4d9e9b6f1ff638 (diff)
Add hxx extension for headers and lib prefix for library dir
Diffstat (limited to 'butl/curl.txx')
-rw-r--r--butl/curl.txx99
1 files changed, 0 insertions, 99 deletions
diff --git a/butl/curl.txx b/butl/curl.txx
deleted file mode 100644
index fe8a25f..0000000
--- a/butl/curl.txx
+++ /dev/null
@@ -1,99 +0,0 @@
-// file : butl/curl.txx -*- C++ -*-
-// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#include <utility> // move(), forward()
-#include <exception> // invalid_argument
-
-namespace butl
-{
- template <typename I>
- typename std::enable_if<curl::is_other<I>::value, I>::type curl::
- map_in (I&& in, method_proto mp, io_data& d)
- {
- switch (mp)
- {
- case ftp_put:
- {
- d.options.push_back ("--upload-file");
- d.options.push_back ("-");
- break;
- }
- case http_post:
- {
- d.options.push_back ("--data-binary");
- d.options.push_back ("@-");
- break;
- }
- case ftp_get:
- case http_get:
- {
- throw std::invalid_argument ("input specified for GET method");
- }
- }
-
- return std::forward<I> (in);
- }
-
- template <typename O>
- typename std::enable_if<curl::is_other<O>::value, O>::type curl::
- map_out (O&& out, method_proto mp, io_data&)
- {
- switch (mp)
- {
- case ftp_get:
- case http_get:
- case http_post:
- {
- // Note: no need for any options, curl writes to stdout by default.
- //
- break;
- }
- case ftp_put:
- {
- throw std::invalid_argument ("output specified for PUT method");
- }
- }
-
- return std::forward<O> (out);
- }
-
- template <typename C,
- typename I,
- typename O,
- typename E,
- typename... A>
- curl::
- curl (const C& cmdc,
- I&& in,
- O&& out,
- E&& err,
- method_type m,
- const std::string& url,
- A&&... options)
- {
- method_proto_options mpo;
- method_proto mp (translate (m, url, mpo));
-
- io_data in_data;
- io_data out_data;
-
- process& p (*this);
- p = process_start (
- cmdc,
- map_in (std::forward<I> (in), mp, in_data),
- map_out (std::forward<O> (out), mp, out_data),
- std::forward<E> (err),
- dir_path (),
- "curl",
- "-s", // Silent.
- "-S", // But do show diagnostics.
- mpo,
- in_data.options,
- out_data.options,
- std::forward<A> (options)...,
- url);
-
- // Note: leaving this scope closes any open ends of the pipes in io_data.
- }
-}