RESTinio
Classes | Functions
restinio::http_field_parsers::host_details Namespace Reference

Classes

struct  sub_delims_predicate_t
 A preducate for symbol_producer_template that checks that a symbol is sub-delims symbol from RCF3986. More...
 
struct  unreserved_predicate_t
 A preducate for symbol_producer_template that checks that a symbol is unreserved symbol from RCF3986. More...
 

Functions

RESTINIO_NODISCARD auto unreserved_symbol_p ()
 A factory for producer that extracts unreserved symbols. More...
 
RESTINIO_NODISCARD auto sub_delims_symbol_p ()
 A factory for producer that extracts sub-delims symbols. More...
 
RESTINIO_NODISCARD auto ipv4_address_p ()
 A factory for producer of IPv4address value. More...
 
RESTINIO_NODISCARD auto ipv6_address_p ()
 A factory for producer of ipv6_address value. More...
 
RESTINIO_NODISCARD auto reg_name_p ()
 A factory for producer of reg-name value. More...
 

Function Documentation

◆ ipv4_address_p()

RESTINIO_NODISCARD auto restinio::http_field_parsers::host_details::ipv4_address_p ( )
inline

A factory for producer of IPv4address value.

Produces std::string.

Uses the following grammar (see https://tools.ietf.org/html/rfc3986#appendix-A):

IPv4address   = dec-octet "." dec-octet "." dec-octet "." dec-octet

dec-octet     = DIGIT                 ; 0-9
              / %x31-39 DIGIT         ; 10-99
              / "1" 2DIGIT            ; 100-199
              / "2" %x30-34 DIGIT     ; 200-249
              / "25" %x30-35          ; 250-255
Since
v.0.6.9

Definition at line 149 of file host.hpp.

◆ ipv6_address_p()

RESTINIO_NODISCARD auto restinio::http_field_parsers::host_details::ipv6_address_p ( )
inline

A factory for producer of ipv6_address value.

Produces std::string.

Uses the following grammar (see https://tools.ietf.org/html/rfc3986#appendix-A):

   IPv6address   =                            6( h16 ":" ) ls32
                 /                       "::" 5( h16 ":" ) ls32
                 / [               h16 ] "::" 4( h16 ":" ) ls32
                 / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
                 / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
                 / [ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
                 / [ *4( h16 ":" ) h16 ] "::"              ls32
                 / [ *5( h16 ":" ) h16 ] "::"              h16
                 / [ *6( h16 ":" ) h16 ] "::"

   h16           = 1*4HEXDIG
   ls32          = ( h16 ":" h16 ) / IPv4address
Since
v.0.6.9

Definition at line 235 of file host.hpp.

◆ reg_name_p()

RESTINIO_NODISCARD auto restinio::http_field_parsers::host_details::reg_name_p ( )
inline

A factory for producer of reg-name value.

Produces std::string.

Note
reg-name is defined in RFC3986 as:
reg-name      = *( unreserved / pct-encoded / sub-delims )
but this producer uses more strict grammar (because empty reg-name in Host HTTP-field has no sense):
reg-name      = 1*( unreserved / pct-encoded / sub-delims )
Since
v.0.6.9

Definition at line 353 of file host.hpp.

◆ sub_delims_symbol_p()

RESTINIO_NODISCARD auto restinio::http_field_parsers::host_details::sub_delims_symbol_p ( )
inline

A factory for producer that extracts sub-delims symbols.

See: https://tools.ietf.org/html/rfc3986#appendix-A

Since
v.0.6.9

Definition at line 121 of file host.hpp.

◆ unreserved_symbol_p()

RESTINIO_NODISCARD auto restinio::http_field_parsers::host_details::unreserved_symbol_p ( )
inline

A factory for producer that extracts unreserved symbols.

See: https://tools.ietf.org/html/rfc3986#appendix-A

Since
v.0.6.9

Definition at line 72 of file host.hpp.