25#ifndef JOIN_SERVICES_HTTP_PROTOCOL_HPP
26#define JOIN_SERVICES_HTTP_PROTOCOL_HPP
33 template <
class Protocol>
36 template <
class Protocol>
39 template <
class Protocol>
42 template <
class Protocol>
45 template <
class Protocol>
77 static Http httpv4 (AF_INET);
87 static Http httpv6 (AF_INET6);
95 constexpr int family () const noexcept
107 constexpr int type () const noexcept
134 return a.family () == b.family ();
178 static Https httpsv4 (AF_INET);
188 static Https httpsv6 (AF_INET6);
198 return _transport.
family ();
217 return a.family () == b.family ();
basic HTTP client.
Definition http_protocol.hpp:34
basic HTTPS client.
Definition http_protocol.hpp:37
basic HTTPS server.
Definition http_server.hpp:983
basic HTTP server.
Definition http_server.hpp:648
basic HTTP worker.
Definition http_server.hpp:85
basic internet endpoint class.
Definition endpoint.hpp:632
socket stream class.
Definition socket_stream.hpp:350
basic stream acceptor class.
Definition protocol.hpp:53
basic stream socket class.
Definition stream_socket.hpp:44
TLS stream class.
Definition tls_stream.hpp:43
TLS decorator for stream sockets.
Definition tls_wrapper.hpp:38
HTTP protocol class (HTTP over TCP).
Definition http_protocol.hpp:52
constexpr int protocol() const noexcept
get the protocol type.
Definition http_protocol.hpp:116
static constexpr uint16_t defaultPort
default HTTP port.
Definition http_protocol.hpp:101
constexpr Http(int family=AF_INET) noexcept
construct the HTTP protocol instance.
Definition http_protocol.hpp:66
static Http & v4() noexcept
get protocol suitable for IPv4 address family.
Definition http_protocol.hpp:75
static Http & v6() noexcept
get protocol suitable for IPv6 address family.
Definition http_protocol.hpp:85
constexpr int type() const noexcept
get the protocol communication semantic.
Definition http_protocol.hpp:107
constexpr int family() const noexcept
get the protocol IP address family.
Definition http_protocol.hpp:95
HTTPS protocol class (HTTP over TLS).
Definition http_protocol.hpp:152
constexpr int family() const noexcept
get the protocol IP address family.
Definition http_protocol.hpp:196
typename Transport::Endpoint Endpoint
Definition http_protocol.hpp:155
typename Transport::Acceptor Acceptor
Definition http_protocol.hpp:158
static Https & v6() noexcept
get protocol suitable for IPv6 address family.
Definition http_protocol.hpp:186
static Https & v4() noexcept
get protocol suitable for IPv4 address family.
Definition http_protocol.hpp:176
constexpr Https(int family=AF_INET) noexcept
construct the HTTPS protocol instance.
Definition http_protocol.hpp:167
static constexpr uint16_t defaultPort
default HTTPS port.
Definition http_protocol.hpp:202
TCP protocol class.
Definition protocol.hpp:471
constexpr int family() const noexcept
get the protocol IP address family.
Definition protocol.hpp:513
BasicStreamAcceptor< Tcp > Acceptor
Definition protocol.hpp:476
BasicInternetEndpoint< Tcp > Endpoint
Definition protocol.hpp:473
Definition acceptor.hpp:32
bool operator==(const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
compare if endpoints are equal.
Definition endpoint.hpp:186
bool operator!=(const BasicLinkLayerEndpoint< Protocol > &a, const BasicLinkLayerEndpoint< Protocol > &b) noexcept
compare if endpoints are not equal.
Definition endpoint.hpp:198