mirror of
https://github.com/cookiengineer/audacity
synced 2026-01-23 17:25:54 +01:00
Adds lib-network-manager
This commit is contained in:
75
libraries/lib-network-manager/Request.h
Normal file
75
libraries/lib-network-manager/Request.h
Normal file
@@ -0,0 +1,75 @@
|
||||
/*!********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
@file Request.h
|
||||
@brief Declare a class for constructing HTTP requests.
|
||||
|
||||
Dmitry Vedenko
|
||||
**********************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <chrono>
|
||||
#include <numeric>
|
||||
|
||||
#include "NetworkManagerApi.h"
|
||||
|
||||
#include "HeadersList.h"
|
||||
#include "CookiesList.h"
|
||||
|
||||
namespace audacity
|
||||
{
|
||||
namespace network_manager
|
||||
{
|
||||
|
||||
class NETWORK_MANAGER_API Request final
|
||||
{
|
||||
public:
|
||||
using Timeout = std::chrono::milliseconds;
|
||||
|
||||
static constexpr size_t INFINITE_REDIRECTS = std::numeric_limits<size_t>::max();
|
||||
|
||||
Request() = default;
|
||||
explicit Request(std::string url) noexcept;
|
||||
|
||||
Request(const Request&) = default;
|
||||
Request(Request&&) = default;
|
||||
Request& operator = (const Request&) = default;
|
||||
Request& operator = (Request&&) = default;
|
||||
|
||||
Request& setURL(std::string url) noexcept;
|
||||
const std::string& getURL() const noexcept;
|
||||
|
||||
Request& setHeader(const std::string& name, std::string value);
|
||||
std::string getHeader(const std::string& name) const;
|
||||
|
||||
const HeadersList& getHeaders () const noexcept;
|
||||
|
||||
Request& setCookie(const std::string& name, std::string value);
|
||||
Request& appendCookies (const CookiesList& list);
|
||||
|
||||
std::string getCookie(const std::string& name) const;
|
||||
|
||||
const CookiesList& getCookies () noexcept;
|
||||
|
||||
Request& setMaxRedirects(size_t redirects) noexcept;
|
||||
size_t getMaxRedirects() const noexcept;
|
||||
|
||||
|
||||
Request& setTimeout(Timeout timeout) noexcept;
|
||||
Timeout getTimeout() const noexcept;
|
||||
private:
|
||||
std::string mUrl;
|
||||
|
||||
HeadersList mHeaders;
|
||||
CookiesList mCookies;
|
||||
|
||||
size_t mMaxRedirects { INFINITE_REDIRECTS };
|
||||
|
||||
Timeout mTimeout { std::chrono::seconds (5) };
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user