header_utils
Loading...
Searching...
No Matches
ghassanpl::known_uri_scheme Struct Referenceabstract

An base class for classes that can validate (and potentially parse more info from) a known URI scheme (e.g. http, file, ftp, etc.). More...

#include <uri.h>

Inherited by ghassanpl::known_schemes::file_scheme.

Public Member Functions

virtual uri_error validate (uri_view uri) const noexcept
virtual uri_error validate (decomposed_uri const &decomposed) const noexcept
virtual std::string_view scheme () const noexcept=0
virtual uri_error validate_authority (std::string_view fragment) const noexcept
virtual uri_error validate_user_info (std::string_view element) const noexcept
virtual uri_error validate_host (std::string_view element) const noexcept
virtual uri_error validate_port (std::string_view element) const noexcept
virtual uri_error validate_path (std::string_view element) const noexcept
virtual uri_error validate_query (std::string_view element) const noexcept
virtual uri_error validate_fragment (std::string_view element) const noexcept
virtual std::string_view default_authority () const noexcept
virtual std::string_view default_user_info () const noexcept
virtual std::string_view default_host () const noexcept
virtual std::string_view default_port () const noexcept
virtual std::string_view default_path () const noexcept
virtual std::string_view default_query () const noexcept
virtual std::string_view default_fragment () const noexcept
virtual enum_flags< uri_decompose_flags > default_decompose_flags () const noexcept
virtual enum_flags< uri_compose_flags > default_compose_flags () const noexcept
virtual std::vector< std::pair< std::string, std::string > > split_query_elements (std::string_view query) const noexcept
virtual std::string normalize_authority (std::string_view element) const noexcept
virtual std::string normalize_user_info (std::string_view element) const noexcept
virtual std::string normalize_host (std::string_view element) const noexcept
virtual std::string normalize_port (std::string_view element) const noexcept
virtual std::string normalize_path (std::string_view element) const noexcept
virtual std::string normalize_query (std::string_view element) const noexcept
virtual std::string normalize_fragment (std::string_view element) const noexcept
virtual uri_error_code iterate_scheme_elements (uri_view uri, std::function< bool(std::string_view element_name, std::string_view element_value)> callback) const noexcept
 Calls the callback function for each scheme-specific "element" of the uri.
uri_expected< uri > normalize_uri (uri_view uri)
virtual bool equivalent (uri_view u1, uri_view u2) const noexcept

Detailed Description

An base class for classes that can validate (and potentially parse more info from) a known URI scheme (e.g. http, file, ftp, etc.).

Definition at line 189 of file uri.h.

Member Function Documentation

◆ default_authority()

virtual std::string_view ghassanpl::known_uri_scheme::default_authority ( ) const
inlinevirtualnoexcept

Definition at line 226 of file uri.h.

◆ default_compose_flags()

virtual enum_flags< uri_compose_flags > ghassanpl::known_uri_scheme::default_compose_flags ( ) const
inlinevirtualnoexcept

Definition at line 235 of file uri.h.

◆ default_decompose_flags()

virtual enum_flags< uri_decompose_flags > ghassanpl::known_uri_scheme::default_decompose_flags ( ) const
inlinevirtualnoexcept

Definition at line 234 of file uri.h.

◆ default_fragment()

virtual std::string_view ghassanpl::known_uri_scheme::default_fragment ( ) const
inlinevirtualnoexcept

Definition at line 232 of file uri.h.

◆ default_host()

virtual std::string_view ghassanpl::known_uri_scheme::default_host ( ) const
inlinevirtualnoexcept

Definition at line 228 of file uri.h.

◆ default_path()

virtual std::string_view ghassanpl::known_uri_scheme::default_path ( ) const
inlinevirtualnoexcept

Definition at line 230 of file uri.h.

◆ default_port()

virtual std::string_view ghassanpl::known_uri_scheme::default_port ( ) const
inlinevirtualnoexcept

Definition at line 229 of file uri.h.

◆ default_query()

virtual std::string_view ghassanpl::known_uri_scheme::default_query ( ) const
inlinevirtualnoexcept

Definition at line 231 of file uri.h.

◆ default_user_info()

virtual std::string_view ghassanpl::known_uri_scheme::default_user_info ( ) const
inlinevirtualnoexcept

Definition at line 227 of file uri.h.

◆ equivalent()

virtual bool ghassanpl::known_uri_scheme::equivalent ( uri_view u1,
uri_view u2 ) const
inlinevirtualnoexcept

Definition at line 264 of file uri.h.

◆ iterate_scheme_elements()

virtual uri_error_code ghassanpl::known_uri_scheme::iterate_scheme_elements ( uri_view uri,
std::function< bool(std::string_view element_name, std::string_view element_value)> callback ) const
inlinevirtualnoexcept

Calls the callback function for each scheme-specific "element" of the uri.

For example, when decoding the data URI "data:text/plain;charset=UTF-8;page=21,the%20data:1234,5678", it will call callback with approximately these results: ("scheme", "data") ("media_type", "text/plain") ("parameters", ";charset=UTF-8;page=21") ("data", "the data:1234,5678")

The function will return the same errors decompose_uri if there is an issue decomposing the URI, as well as:

  • no_scheme_specific_elements - if this known_scheme does not support scheme element iteration
  • scheme_specific_element_malformed - if a scheme-specific element was malformed or missing when required

Definition at line 257 of file uri.h.

◆ normalize_authority()

virtual std::string ghassanpl::known_uri_scheme::normalize_authority ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 239 of file uri.h.

◆ normalize_fragment()

virtual std::string ghassanpl::known_uri_scheme::normalize_fragment ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 245 of file uri.h.

◆ normalize_host()

virtual std::string ghassanpl::known_uri_scheme::normalize_host ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 241 of file uri.h.

◆ normalize_path()

virtual std::string ghassanpl::known_uri_scheme::normalize_path ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 243 of file uri.h.

◆ normalize_port()

virtual std::string ghassanpl::known_uri_scheme::normalize_port ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 242 of file uri.h.

◆ normalize_query()

virtual std::string ghassanpl::known_uri_scheme::normalize_query ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 244 of file uri.h.

◆ normalize_user_info()

virtual std::string ghassanpl::known_uri_scheme::normalize_user_info ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 240 of file uri.h.

◆ scheme()

virtual std::string_view ghassanpl::known_uri_scheme::scheme ( ) const
pure virtualnoexcept

◆ split_query_elements()

std::vector< std::pair< std::string, std::string > > ghassanpl::known_uri_scheme::split_query_elements ( std::string_view query) const
virtualnoexcept

Definition at line 408 of file uri_impl.h.

◆ validate() [1/2]

virtual uri_error ghassanpl::known_uri_scheme::validate ( decomposed_uri const & decomposed) const
inlinevirtualnoexcept

Definition at line 201 of file uri.h.

◆ validate() [2/2]

virtual uri_error ghassanpl::known_uri_scheme::validate ( uri_view uri) const
inlinevirtualnoexcept

Definition at line 193 of file uri.h.

◆ validate_authority()

virtual uri_error ghassanpl::known_uri_scheme::validate_authority ( std::string_view fragment) const
inlinevirtualnoexcept

Definition at line 213 of file uri.h.

◆ validate_fragment()

virtual uri_error ghassanpl::known_uri_scheme::validate_fragment ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 224 of file uri.h.

◆ validate_host()

virtual uri_error ghassanpl::known_uri_scheme::validate_host ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 220 of file uri.h.

◆ validate_path()

virtual uri_error ghassanpl::known_uri_scheme::validate_path ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 222 of file uri.h.

◆ validate_port()

virtual uri_error ghassanpl::known_uri_scheme::validate_port ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 221 of file uri.h.

◆ validate_query()

virtual uri_error ghassanpl::known_uri_scheme::validate_query ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 223 of file uri.h.

◆ validate_user_info()

virtual uri_error ghassanpl::known_uri_scheme::validate_user_info ( std::string_view element) const
inlinevirtualnoexcept

Definition at line 219 of file uri.h.