RESTinio
Loading...
Searching...
No Matches
restinio::router::route_params_t Class Referencefinal

Parameters extracted from route. More...

#include <express.hpp>

Public Types

using named_parameters_container_t
using indexed_parameters_container_t

Public Member Functions

 route_params_t ()=default
 route_params_t (route_params_t &&)=default
route_params_toperator= (route_params_t &&)=default
 route_params_t (const route_params_t &)=delete
route_params_toperator= (const route_params_t &)=delete
string_view_t match () const noexcept
 Matched route.
string_view_t operator[] (string_view_t key) const
 Get named parameter.
bool has (string_view_t key) const noexcept
 Check parameter.
std::optional< string_view_tget_param (string_view_t key) const noexcept
 Get the value of a parameter if it exists.
string_view_t operator[] (std::size_t i) const
 Get indexed parameter.
auto named_parameters_size () const noexcept
 Get number of parameters.
auto indexed_parameters_size () const noexcept

Private Member Functions

void match (std::unique_ptr< char[] > request_target, std::shared_ptr< std::string > key_names_buffer, string_view_t match, named_parameters_container_t named_parameters, indexed_parameters_container_t indexed_parameters)
named_parameters_container_t::const_iterator find_named_parameter (string_view_t key) const noexcept
named_parameters_container_t::const_reference find_named_parameter_with_check (string_view_t key) const

Private Attributes

std::unique_ptr< char[] > m_request_target
 A raw request target.
std::shared_ptr< std::string > m_key_names_buffer
 Shared buffer for string_view of named parameterts names.
string_view_t m_match
 Matched pattern.
named_parameters_container_t m_named_parameters
 Named params.
indexed_parameters_container_t m_indexed_parameters
 Indexed params.

Friends

struct impl::route_params_accessor_t

Detailed Description

Parameters extracted from route.

Holds values of parameters extracted from route.

All values are stored as string views, route_params_t instance owns bufers used by these views. And that leads to following limittions: once a copy of a string view is created it is important to use it with respect to life time of route_params_t instance to which this parameter bind belongs. String view is valid during route_params_t instance life time.

Definition at line 56 of file express.hpp.

Member Typedef Documentation

◆ indexed_parameters_container_t

Initial value:
std::vector< string_view_t >

Definition at line 61 of file express.hpp.

◆ named_parameters_container_t

Initial value:
std::vector< std::pair< string_view_t, string_view_t > >

Definition at line 59 of file express.hpp.

Constructor & Destructor Documentation

◆ route_params_t() [1/3]

restinio::router::route_params_t::route_params_t ( )
default

◆ route_params_t() [2/3]

restinio::router::route_params_t::route_params_t ( route_params_t && )
default

◆ route_params_t() [3/3]

restinio::router::route_params_t::route_params_t ( const route_params_t & )
delete

Member Function Documentation

◆ find_named_parameter()

named_parameters_container_t::const_iterator restinio::router::route_params_t::find_named_parameter ( string_view_t key) const
inlineprivatenoexcept

Definition at line 142 of file express.hpp.

◆ find_named_parameter_with_check()

named_parameters_container_t::const_reference restinio::router::route_params_t::find_named_parameter_with_check ( string_view_t key) const
inlineprivate

Definition at line 154 of file express.hpp.

◆ get_param()

std::optional< string_view_t > restinio::router::route_params_t::get_param ( string_view_t key) const
inlinenoexcept

Get the value of a parameter if it exists.

Since
v.0.4.4

Definition at line 111 of file express.hpp.

◆ has()

bool restinio::router::route_params_t::has ( string_view_t key) const
inlinenoexcept

Check parameter.

Definition at line 103 of file express.hpp.

◆ indexed_parameters_size()

auto restinio::router::route_params_t::indexed_parameters_size ( ) const
inlinenoexcept

Definition at line 137 of file express.hpp.

◆ match() [1/2]

string_view_t restinio::router::route_params_t::match ( ) const
inlinenoexcept

Matched route.

Definition at line 92 of file express.hpp.

◆ match() [2/2]

void restinio::router::route_params_t::match ( std::unique_ptr< char[] > request_target,
std::shared_ptr< std::string > key_names_buffer,
string_view_t match,
named_parameters_container_t named_parameters,
indexed_parameters_container_t indexed_parameters )
inlineprivate

Definition at line 68 of file express.hpp.

◆ named_parameters_size()

auto restinio::router::route_params_t::named_parameters_size ( ) const
inlinenoexcept

Get number of parameters.

Definition at line 136 of file express.hpp.

◆ operator=() [1/2]

route_params_t & restinio::router::route_params_t::operator= ( const route_params_t & )
delete

◆ operator=() [2/2]

route_params_t & restinio::router::route_params_t::operator= ( route_params_t && )
default

◆ operator[]() [1/2]

string_view_t restinio::router::route_params_t::operator[] ( std::size_t i) const
inline

Get indexed parameter.

Definition at line 122 of file express.hpp.

◆ operator[]() [2/2]

string_view_t restinio::router::route_params_t::operator[] ( string_view_t key) const
inline

Get named parameter.

Definition at line 96 of file express.hpp.

◆ impl::route_params_accessor_t

friend struct impl::route_params_accessor_t
friend

Definition at line 65 of file express.hpp.

Member Data Documentation

◆ m_indexed_parameters

indexed_parameters_container_t restinio::router::route_params_t::m_indexed_parameters
private

Indexed params.

Definition at line 191 of file express.hpp.

◆ m_key_names_buffer

std::shared_ptr< std::string > restinio::router::route_params_t::m_key_names_buffer
private

Shared buffer for string_view of named parameterts names.

Definition at line 182 of file express.hpp.

◆ m_match

string_view_t restinio::router::route_params_t::m_match
private

Matched pattern.

Definition at line 185 of file express.hpp.

◆ m_named_parameters

named_parameters_container_t restinio::router::route_params_t::m_named_parameters
private

Named params.

Definition at line 188 of file express.hpp.

◆ m_request_target

std::unique_ptr< char[] > restinio::router::route_params_t::m_request_target
private

A raw request target.

All parameters values are defined as string views refering parts of this beffer.

Note
std::unique_ptr< char[] > is used here on purpose, because if we consider std::string, then it has an issue when SSO is applied. It is important that parameters that refering buffer are valid after move operations with the buffer. And std::strings with SSO applied cannot guarantee this. Vector on the other hand gives this guarantee.

Definition at line 179 of file express.hpp.


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