Instrument Control Lib
Framework to control Oscilloscopes, SMUs, Function Generators and DC Powersupplies via Ethernet.
HTTPRequest.h File Reference
#include <cctype>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <algorithm>
#include <array>
#include <chrono>
#include <functional>
#include <map>
#include <memory>
#include <stdexcept>
#include <string>
#include <system_error>
#include <type_traits>
#include <vector>
#include <errno.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/select.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
Include dependency graph for HTTPRequest.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  http::RequestError
 
class  http::ResponseError
 
struct  http::Uri
 
struct  http::HttpVersion
 
struct  http::Status
 
struct  http::Response
 
class  http::detail::Socket
 
class  http::Request
 

Namespaces

 http
 
 http::detail
 

Typedefs

using http::HeaderField = std::pair< std::string, std::string >
 
using http::HeaderFields = std::vector< HeaderField >
 

Enumerations

enum class  http::InternetProtocol : std::uint8_t { http::v4 , http::v6 }
 

Functions

int http::detail::getLastError () noexcept
 
constexpr int http::detail::getAddressFamily (const InternetProtocol internetProtocol)
 
template<typename C >
constexpr bool http::detail::isWhiteSpaceChar (const C c) noexcept
 
template<typename C >
constexpr bool http::detail::isDigitChar (const C c) noexcept
 
template<typename C >
constexpr bool http::detail::isAlphaChar (const C c) noexcept
 
template<typename C >
constexpr bool http::detail::isTokenChar (const C c) noexcept
 
template<typename C >
constexpr bool http::detail::isVisibleChar (const C c) noexcept
 
template<typename C >
constexpr bool http::detail::isObsoleteTextChar (const C c) noexcept
 
template<class Iterator >
Iterator http::detail::skipWhiteSpaces (const Iterator begin, const Iterator end)
 
template<typename T , typename C , typename std::enable_if< std::is_unsigned< T >::value >::type * = nullptr>
constexpr T http::detail::digitToUint (const C c)
 
template<typename T , typename C , typename std::enable_if< std::is_unsigned< T >::value >::type * = nullptr>
constexpr T http::detail::hexDigitToUint (const C c)
 
template<class Iterator >
Uri http::detail::parseUri (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, HttpVersion > http::detail::parseHttpVersion (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, std::uint16_t > http::detail::parseStatusCode (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, std::string > http::detail::parseReasonPhrase (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, std::string > http::detail::parseToken (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, std::string > http::detail::parseFieldValue (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, std::string > http::detail::parseFieldContent (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, HeaderField > http::detail::parseHeaderField (const Iterator begin, const Iterator end)
 
template<class Iterator >
std::pair< Iterator, Status > http::detail::parseStatusLine (const Iterator begin, const Iterator end)
 
template<typename T , class Iterator , typename std::enable_if< std::is_unsigned< T >::value >::type * = nullptr>
http::detail::stringToUint (const Iterator begin, const Iterator end)
 
template<typename T , class Iterator , typename std::enable_if< std::is_unsigned< T >::value >::type * = nullptr>
http::detail::hexStringToUint (const Iterator begin, const Iterator end)
 
std::string http::detail::encodeRequestLine (const std::string &method, const std::string &target)
 
std::string http::detail::encodeHeaderFields (const HeaderFields &headerFields)
 
template<class Iterator >
std::string http::detail::encodeBase64 (const Iterator begin, const Iterator end)
 
std::vector< std::uint8_t > http::detail::encodeHtml (const Uri &uri, const std::string &method, const std::vector< uint8_t > &body, HeaderFields headerFields)