RESTinio
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
restinio::router::route_params_t Class Referencefinal

Parameters extracted from route. More...

#include <express.hpp>

Public Types

using named_parameters_container_t = std::vector< std::pair< string_view_t, string_view_t > >
 
using indexed_parameters_container_t = std::vector< string_view_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. More...
 
string_view_t operator[] (string_view_t key) const
 Get named parameter. More...
 
bool has (string_view_t key) const noexcept
 Check parameter. More...
 
optional_t< string_view_tget_param (string_view_t key) const noexcept
 Get the value of a parameter if it exists. More...
 
string_view_t operator[] (std::size_t i) const
 Get indexed parameter. More...
 
auto named_parameters_size () const noexcept
 Get number of parameters. More...
 
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. More...
 
std::shared_ptr< std::string > m_key_names_buffer
 Shared buffer for string_view of named parameterts names. More...
 
string_view_t m_match
 Matched pattern. More...
 
named_parameters_container_t m_named_parameters
 Named params. More...
 
indexed_parameters_container_t m_indexed_parameters
 Indexed params. More...
 

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 54 of file express.hpp.

Member Typedef Documentation

◆ indexed_parameters_container_t

Definition at line 60 of file express.hpp.

◆ named_parameters_container_t

Definition at line 58 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 136 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 148 of file express.hpp.

◆ get_param()

optional_t< 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 109 of file express.hpp.

◆ has()

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

Check parameter.

Definition at line 101 of file express.hpp.

◆ indexed_parameters_size()

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

Definition at line 131 of file express.hpp.

◆ match() [1/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 66 of file express.hpp.

◆ match() [2/2]

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

Matched route.

Definition at line 90 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 130 of file express.hpp.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ operator[]() [1/2]

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

Get named parameter.

Definition at line 94 of file express.hpp.

◆ operator[]() [2/2]

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

Get indexed parameter.

Definition at line 120 of file express.hpp.

Friends And Related Function Documentation

◆ impl::route_params_accessor_t

friend struct impl::route_params_accessor_t
friend

Definition at line 63 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 185 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 176 of file express.hpp.

◆ m_match

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

Matched pattern.

Definition at line 179 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 182 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 173 of file express.hpp.


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