Shared/IO/HttpRequest.h file

Namespaces

namespace Death
Shared root namespace.
namespace Death::IO
File system, streaming and IO-related classes.
namespace Death::IO::Http

Classes

struct Death::IO::Http::Uri
struct Death::IO::Http::HttpVersion
struct Death::IO::Http::HttpStatus
struct Death::IO::Http::Response
class Death::IO::Http::Socket
class Death::IO::Http::Request

Enums

enum class InternetProtocol : std::uint8_t { V4, V6 }

Typedefs

using HeaderField = std::pair<Containers::String, Containers::String>

Functions

auto GetLastError() -> int noexcept
auto GetAddressFamily(const InternetProtocol internetProtocol) -> int constexpr
template<typename C>
auto IsWhiteSpaceChar(const C c) -> bool constexpr noexcept
template<typename C>
auto IsDigitChar(const C c) -> bool constexpr noexcept
template<typename C>
auto IsAlphaChar(const C c) -> bool constexpr noexcept
template<typename C>
auto IsTokenChar(const C c) -> bool constexpr noexcept
template<typename C>
auto IsVisibleChar(const C c) -> bool constexpr noexcept
template<typename C>
auto IsObsoleteTextChar(const C c) -> bool constexpr noexcept
template<class Iterator>
auto SkipWhiteSpaces(const Iterator begin, const Iterator end) -> Iterator
template<typename T, typename C, class = typename std::enable_if<std::is_unsigned<T>::value>::type>
auto DigitToUint(const C c) -> T constexpr
template<typename T, typename C, class = typename std::enable_if<std::is_unsigned<T>::value>::type>
auto HexDigitToUint(const C c) -> T constexpr
template<class Iterator>
auto ParseUri(const Iterator begin, const Iterator end) -> Uri
template<class Iterator>
auto ParseHttpVersion(const Iterator begin, const Iterator end) -> std::pair<Iterator, HttpVersion>
template<class Iterator>
auto ParseStatusCode(const Iterator begin, const Iterator end) -> std::pair<Iterator, std::uint16_t>
template<class Iterator>
auto ParseReasonPhrase(const Iterator begin, const Iterator end) -> std::pair<Iterator, std::string>
template<class Iterator>
auto ParseToken(const Iterator begin, const Iterator end) -> std::pair<Iterator, std::string>
template<class Iterator>
auto ParseFieldValue(const Iterator begin, const Iterator end) -> std::pair<Iterator, std::string>
template<class Iterator>
auto ParseFieldContent(const Iterator begin, const Iterator end) -> std::pair<Iterator, std::string>
template<class Iterator>
auto ParseHeaderField(const Iterator begin, const Iterator end) -> std::pair<Iterator, HeaderField>
template<class Iterator>
auto ParseStatusLine(const Iterator begin, const Iterator end) -> std::pair<Iterator, HttpStatus>
template<typename T, class Iterator, class = typename std::enable_if<std::is_unsigned<T>::value>::type>
auto StringToUint(const Iterator begin, const Iterator end) -> T
template<typename T, class Iterator, class = typename std::enable_if<std::is_unsigned<T>::value>::type>
auto HexStringToUint(const Iterator begin, const Iterator end) -> T
auto EncodeRequestLine(const Containers::StringView& method, const Containers::StringView& target) -> Containers::String
auto EncodeHeaderFields(const Containers::SmallVectorImpl<HeaderField>& headerFields) -> Containers::String
template<class Iterator>
auto EncodeBase64(const Iterator begin, const Iterator end) -> std::string
void EncodeHtml(const Uri& uri, const Containers::StringView& method, const Containers::ArrayView<uint8_t>& body, const Containers::SmallVectorImpl<HeaderField>& headerFields, Containers::SmallVectorImpl<std::uint8_t>& targetBuffer)