5#include <HttpStatusCodes_C++11.h>
58 std::unique_ptr<curlMemory>
_data = std::make_unique<curlMemory>();
75 void setCommonFields(
const std::string &fullURL, CURLoption method,
const std::string &payload);
85 static size_t writeDataCallback(
const char *contents,
size_t size,
size_t nmemb, std::string *userp);
93 CURLcode
performRequest(HttpStatus::Code &statusCode, std::string &receivedData);
121 template <
typename T>
bool setOption(CURLoption option, T value)
123 return curl_easy_setopt(
_curl, option, value) == CURLE_OK;
139 CURLcode
sendGETRequest(
const std::string &index, std::string &receivedData, HttpStatus::Code &statusCode);
148 CURLcode
sendHEADRequest(
const std::string &index, std::string &receivedData, HttpStatus::Code &statusCode);
158 CURLcode
sendPOSTRequest(
const std::string &index,
const std::string &payload, std::string &receivedData,
159 HttpStatus::Code &statusCode);
169 CURLcode
sendPUTRequest(
const std::string &index,
const std::string &payload, std::string &receivedData,
170 HttpStatus::Code &statusCode);
constexpr int HTTP_TIMEOUT_MS
HTTP connection timeout in milliseconds.
const std::string & getHostAddress() const
CURLcode sendPUTRequest(const std::string &index, const std::string &payload, std::string &receivedData, HttpStatus::Code &statusCode)
HTTP(std::string addr, int timeoutInMs=HTTP_TIMEOUT_MS)
CURLcode sendHEADRequest(const std::string &index, std::string &receivedData, HttpStatus::Code &statusCode)
HTTP & operator=(HTTP)=delete
Copy assignment operator.
HTTP(const HTTP &)=delete
Copy constructor.
CURLcode sendPOSTRequest(const std::string &index, const std::string &payload, std::string &receivedData, HttpStatus::Code &statusCode)
HTTP(HTTP &&)=delete
Move constructor.
CURLcode performRequest(HttpStatus::Code &statusCode, std::string &receivedData)
HTTP & operator=(HTTP &&)=delete
Move assignment operator.
bool setOption(CURLoption option, T value)
CURL * _curl
CURL handler.
std::unique_ptr< curlMemory > _data
Memory structure for CURL.
static size_t writeDataCallback(const char *contents, size_t size, size_t nmemb, std::string *userp)
void setCommonFields(const std::string &fullURL, CURLoption method)
CURLcode sendGETRequest(const std::string &index, std::string &receivedData, HttpStatus::Code &statusCode)
std::string _hostAddr
Full path of server.
long startTransferTime
Total processing time for starting transfer in microseconds.
size_t requestBytes
Total request size in bytes.
long uploadSpeed
Upload bandwidth in Bps.
long preTransferTime
Total processing time for pre-transfer period in microseconds.
size_t headerBytes
Total header size in bytes.
size_t uploadBytes
Total uploaded bytes.
long nameLookupTime
Total processing time for name lookup in microseconds.
long totalTime
Total processing time in microseconds.
long redirectTime
Total processing time for redirections in microseconds.
size_t downloadBytes
Total downloaded bytes.
long connectionTime
Total processing time for connection in microseconds.
long downloadSpeed
Download bandwidth in Bps.