C++ Actor Framework 1.0.0
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, std::string_view >

Classes

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

Public Types

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

Public Member Functions

 uri (uri &&)=default
 
 uri (const uri &)=default
 
urioperator= (uri &&)=default
 
urioperator= (const uri &)=default
 
 uri (impl_ptr ptr)
 
bool empty () const noexcept
 Returns whether all components of this URI are empty.
 
bool valid () const noexcept
 Returns whether the URI contains valid content.
 
std::string_view str () const noexcept
 Returns the full URI as provided by the user.
 
std::string_view scheme () const noexcept
 Returns the scheme component.
 
const authority_typeauthority () const noexcept
 Returns the authority component.
 
std::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.
 
std::string_view fragment () const noexcept
 Returns the fragment component.
 
std::string host_str () const
 Returns the host sub-component of the authority as string.
 
std::string path_query_fragment () const
 Returns the path, query and fragment components (as they appear in the encoded URI) with a leading '/'.
 
size_t hash_code () const noexcept
 Returns a hash code over all components.
 

Static Public Member Functions

static bool can_parse (std::string_view str) noexcept
 Returns a new URI with the authority component only.
 
static void encode (std::string &str, std::string_view x, bool is_path=false)
 
static void decode (std::string &str)
 

Friends

template<class >
struct inspector_access
 

Related Symbols

(Note that these are not member symbols.)

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

Detailed Description

A URI according to RFC 3986.

Member Typedef Documentation

◆ host_type

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

Host subcomponent of the authority component.

Either an IP address or an hostname as string.

Member Function Documentation

◆ can_parse()

bool caf::uri::can_parse ( std::string_view str)
staticnoexcept

Returns a new URI with the authority component only.

Returns
A new URI in the form scheme://authority if the authority exists, otherwise none.` std::optional<uri> authority_only() const;

– comparison ----------------------------------------------------------—

auto compare(const uri& other) const noexcept { return str().compare(other.str()); }

auto compare(std::string_view x) const noexcept { return str().compare(x); }

– parsing -------------------------------------------------------------—

/ Returns whether parse would produce a valid URI.


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