1#ifndef CURL_CONTAINER_H
2#define CURL_CONTAINER_H
3
4#include <initializer_list>
5#include <memory>
6#include <string>
7#include <vector>
8
9#include "cpr/curlholder.h"
10
11
12namespace cpr {
13
14struct Parameter {
15 Parameter(std::string p_key, std::string p_value) : key{std::move(p_key)}, value{std::move(p_value)} {}
16
17 std::string key;
18 std::string value;
19};
20
21struct Pair {
22 Pair(std::string p_key, std::string p_value) : key(std::move(p_key)), value(std::move(p_value)) {}
23
24 std::string key;
25 std::string value;
26};
27
28
29template <class T>
30class CurlContainer {
31 public:
32 /**
33 * Enables or disables URL encoding for keys and values when calling GetContent(...).
34 **/
35 bool encode = true;
36
37 CurlContainer() = default;
38 CurlContainer(const std::initializer_list<T>&);
39
40 void Add(const std::initializer_list<T>&);
41 void Add(const T&);
42
43 const std::string GetContent(const CurlHolder&) const;
44
45 protected:
46 std::vector<T> containerList_;
47};
48
49} // namespace cpr
50
51#endif //
52