RESTinio
|
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_t & | operator= (route_params_t &&)=default |
route_params_t (const route_params_t &)=delete | |
route_params_t & | operator= (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_t > | get_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 |
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 57 of file express.hpp.
using restinio::router::route_params_t::indexed_parameters_container_t = std::vector< string_view_t > |
Definition at line 62 of file express.hpp.
using restinio::router::route_params_t::named_parameters_container_t = std::vector< std::pair< string_view_t, string_view_t > > |
Definition at line 60 of file express.hpp.
|
default |
|
default |
|
delete |
|
inlineprivatenoexcept |
Definition at line 139 of file express.hpp.
|
inlineprivate |
Definition at line 151 of file express.hpp.
|
inlinenoexcept |
|
inlinenoexcept |
Check parameter.
Definition at line 104 of file express.hpp.
|
inlinenoexcept |
Definition at line 134 of file express.hpp.
|
inlinenoexcept |
Matched route.
Definition at line 93 of file express.hpp.
|
inlineprivate |
Definition at line 69 of file express.hpp.
|
inlinenoexcept |
Get number of parameters.
Definition at line 133 of file express.hpp.
|
delete |
|
default |
|
inline |
Get indexed parameter.
Definition at line 123 of file express.hpp.
|
inline |
Get named parameter.
Definition at line 97 of file express.hpp.
|
friend |
Definition at line 66 of file express.hpp.
|
private |
Indexed params.
Definition at line 188 of file express.hpp.
|
private |
Shared buffer for string_view of named parameterts names.
Definition at line 179 of file express.hpp.
|
private |
Matched pattern.
Definition at line 182 of file express.hpp.
|
private |
Named params.
Definition at line 185 of file express.hpp.
|
private |
A raw request target.
All parameters values are defined as string views refering parts of this beffer.
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 176 of file express.hpp.