RESTinio
Classes | Namespaces | Typedefs | Functions
easy_parser_router.hpp File Reference

A router based on easy_parser. More...

#include <restinio/router/impl/target_path_holder.hpp>
#include <restinio/router/non_matched_request_handler.hpp>
#include <restinio/router/method_matcher.hpp>
#include <restinio/helpers/easy_parser.hpp>
#include <vector>

Go to the source code of this file.

Classes

struct  restinio::router::easy_parser_router::impl::no_match_t
 Helper type to indicate a negative match attempt. More...
 
class  restinio::router::easy_parser_router::impl::router_entry_t< Extra_Data >
 An interface for one entry of easy_parser-based router. More...
 
class  restinio::router::easy_parser_router::impl::actual_router_entry_t< Extra_Data, Producer, Handler >
 An actual implementation of router_entry interface. More...
 
struct  restinio::router::easy_parser_router::impl::unescape_transformer_t< Unescape_Traits >
 A transformer that performs percent-unescaping of an input string. More...
 
class  restinio::router::easy_parser_router::impl::special_produce_tuple_item_clause_t< Producer, Index >
 A special case of produce-consume clause where the produced value is stored into a tuple. More...
 
class  restinio::router::easy_parser_router::impl::special_exact_fixed_size_fragment_clause_t< Size >
 A special clause type for case when exact_fixed_size_fragment_producer should be used without storing its value. More...
 
class  restinio::router::easy_parser_router::impl::special_exact_fragment_clause_t
 A special clause type for case when exact_fragment_producer should be used without storing its value. More...
 
struct  restinio::router::easy_parser_router::impl::dsl_details::add_type_if_necessary_impl< H, To< Results... >, false >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::add_type_if_necessary_impl< H, To< Results... >, true >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::add_type_if_necessary< H, R >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::result_tuple_detector< From< Sources... >, To< Results... > >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::result_tuple_detector< From<>, To< Results... > >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::detect_result_tuple< Args_Type_List >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::one_clause_type_processor< T, Is_Producer, Current_Index >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::one_clause_type_processor< const char[Size], false, Current_Index >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::one_clause_type_processor< std::string, false, Current_Index >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::one_clause_type_processor< string_view_t, false, Current_Index >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::one_clause_type_processor< T, true, Current_Index >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::clauses_type_maker< From< Sources... >, To< Results... >, Current_Index >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::clauses_type_maker< From<>, To< Results... >, Current_Index >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::make_clauses_types< Args_Type_List >
 
struct  restinio::router::easy_parser_router::impl::dsl_details::special_decay< T >
 A special analog of std::decay meta-function that is handles array differently. More...
 
struct  restinio::router::easy_parser_router::impl::dsl_processor< Args >
 The main meta-function for processing route DSL. More...
 
class  restinio::router::easy_parser_router::impl::path_to_tuple_producer_t< Target_Type, Subitems_Tuple >
 An implementation of a producer for path_to_tuple case. More...
 
class  restinio::router::easy_parser_router::impl::path_to_params_producer_t< Target_Type, Subitems_Tuple >
 An implementation of a producer for path_to_params case. More...
 
class  restinio::router::generic_easy_parser_router_t< Extra_Data_Factory >
 A generic request router that uses easy_parser for matching requests with handlers. More...
 

Namespaces

namespace  restinio
 
namespace  restinio::router
 
namespace  restinio::router::easy_parser_router
 
namespace  restinio::router::easy_parser_router::impl
 
namespace  restinio::router::easy_parser_router::impl::dsl_details
 
namespace  restinio::router::easy_parser_router::impl::path_to_params_details
 

Typedefs

using restinio::router::easy_parser_router::impl::target_path_holder_t = restinio::router::impl::target_path_holder_t
 
template<typename Extra_Data >
using restinio::router::easy_parser_router::impl::router_entry_unique_ptr_t = std::unique_ptr< router_entry_t< Extra_Data > >
 An alias for unique_ptr of router_entry. More...
 
template<typename Args_Type_List >
using restinio::router::easy_parser_router::impl::dsl_details::detect_result_tuple_t = typename detect_result_tuple< Args_Type_List >::type
 
template<typename Args_Type_List >
using restinio::router::easy_parser_router::impl::dsl_details::make_clauses_types_t = typename make_clauses_types< Args_Type_List >::type
 
using restinio::router::easy_parser_router_t = generic_easy_parser_router_t< no_extra_data_factory_t >
 A request router that uses easy_parser for matching requests with handlers. More...
 

Functions

template<typename F , typename Extra_Data , typename Tuple , std::size_t... Indexes>
decltype(auto) restinio::router::easy_parser_router::impl::path_to_params_details::call_with_tuple_impl (F &&what, const generic_request_handle_t< Extra_Data > &req, Tuple &&params, std::index_sequence< Indexes... >)
 
template<typename F , typename Extra_Data , typename Tuple >
decltype(auto) restinio::router::easy_parser_router::impl::path_to_params_details::call_with_tuple (F &&what, const generic_request_handle_t< Extra_Data > &req, Tuple &&params)
 A helper function to call a request-handler with a tuple. More...
 
template<typename... Args>
RESTINIO_NODISCARD auto restinio::router::easy_parser_router::path_to_tuple (Args &&...args)
 Describe a route for a handler that accepts params from the route in form of a tuple. More...
 
template<typename... Args>
RESTINIO_NODISCARD auto restinio::router::easy_parser_router::path_to_params (Args &&...args)
 Describe a route for a handler that accepts params from the route in form of a list of separate arguments. More...
 
RESTINIO_NODISCARD auto restinio::router::easy_parser_router::path_fragment_p (char separator='/')
 A factory that creates a string-producer that extracts a sequence on symbols until the separator will be found. More...
 
template<typename Unescape_Traits = restinio::utils::restinio_default_unescape_traits>
RESTINIO_NODISCARD auto restinio::router::easy_parser_router::unescape ()
 A factory for unescape_transformer. More...
 

Detailed Description

A router based on easy_parser.

Since
v.0.6.6

Definition in file easy_parser_router.hpp.