CAF 0.17.6
Loading...
Searching...
No Matches
caf::uri Class Reference

A URI according to RFC 3986. More...

#include <uri.hpp>

Inheritance diagram for caf::uri:
caf::detail::comparable< uri > caf::detail::comparable< uri, string_view >

Classes

struct  authority_type
 Bundles the authority component of the URI, i.e., userinfo, host, and port. More...

Public Types

using impl_ptr = intrusive_ptr<const detail::uri_impl>
 Pointer to implementation.
using host_type = variant<std::string, ip_address>
 Host subcomponent of the authority component.
using path_list = std::vector<string_view>
 Separates the query component into key-value pairs.
using query_map = detail::unordered_flat_map<std::string, std::string>
 Separates the query component into key-value pairs.

Public Member Functions

 uri (uri &&)=default
 uri (const uri &)=default
uri & operator= (uri &&)=default
uri & operator= (const uri &)=default
 uri (impl_ptr ptr)
bool empty () const noexcept
 Returns whether all components of this URI are empty.
string_view str () const noexcept
 Returns the full URI as provided by the user.
string_view scheme () const noexcept
 Returns the scheme component.
const authority_typeauthority () const noexcept
 Returns the authority component.
string_view path () const noexcept
 Returns the path component as provided by the user.
const query_mapquery () const noexcept
 Returns the query component as key-value map.
string_view fragment () const noexcept
 Returns the fragment component.
size_t hash_code () const noexcept
 Returns a hash code over all components.

(Note that these are not member symbols.)

std::string to_string (const uri &x)
std::string to_string (const uri::authority_type &x)
error parse (string_view str, uri &dest)
expected< uri > make_uri (string_view str)

Detailed Description

A URI according to RFC 3986.

Member Typedef Documentation

◆ host_type

using caf::uri::host_type = variant<std::string, ip_address>

Host subcomponent of the authority component.

Either an IP address or an hostname as string.


The documentation for this class was generated from the following file: