11#include <http_parser.h>
27namespace connection_settings_details
39template<
typename Listener >
44 template<
typename Settings >
46 const Settings & settings )
50 template<
typename Lambda >
57 template<
typename Lambda >
60 Lambda && lambda )
const noexcept
79 template<
typename Settings >
82 template<
typename Lambda >
89 template<
typename Lambda >
92 Lambda && )
const noexcept
109template <
typename Traits >
111 :
public std::enable_shared_from_this< connection_settings_t< Traits > >
113 typename Traits::connection_state_listener_t >
124 typename Traits::connection_state_listener_t >;
132 std::shared_ptr< typename Traits::extra_data_factory_t >;
139 template <
typename Settings >
141 Settings && settings,
142 http_parser_settings parser_settings,
150 settings.read_next_http_message_timelimit() }
152 settings.write_http_response_timelimit() }
154 settings.handle_request_timeout() }
164 throw exception_t{
"extra_data_factory is nullptr" };
185 std::chrono::steady_clock::duration
188 std::chrono::steady_clock::duration
191 std::chrono::steady_clock::duration
233template <
typename Traits >
235 std::shared_ptr< connection_settings_t< Traits > >;
Exception class for all exceptions thrown by RESTinio.
A type of holder of limits related to an incoming HTTP message.
#define RESTINIO_NODISCARD
Stuff related to connection state listeners.
Stuff related to limits of an incoming HTTP message.
std::shared_ptr< connection_settings_t< Traits > > connection_settings_handle_t
void suppress_exceptions_quietly(Lambda &&lambda) noexcept
Helper function for execution a block of code with suppression of any exceptions raised inside that b...
typename details::actual_request_handler_type_detector< typename Traits::request_handler_t, typename Traits::extra_data_factory_t >::request_handler_t request_handler_type_from_traits_t
A metafunction for extraction a request-handler type from server's traits.
void call_state_listener(Lambda &&) const noexcept
state_listener_holder_t(const Settings &)
void call_state_listener_suppressing_exceptions(Lambda &&) const noexcept
A class for holding actual state listener.
void call_state_listener(Lambda &&lambda) const
void call_state_listener_suppressing_exceptions(Lambda &&lambda) const noexcept
state_listener_holder_t(const Settings &settings)
std::shared_ptr< Listener > m_connection_state_listener
Parameters shared between connections.
std::size_t m_buffer_size
Params from server_settings_t.
std::size_t m_max_pipelined_requests
RESTINIO_NODISCARD auto & extra_data_factory() const noexcept
Get a reference to extra-data-factory object.
typename Traits::logger_t logger_t
request_handler_type_from_traits_t< Traits > request_handler_t
connection_settings_t & operator=(const connection_settings_t &)=delete
std::shared_ptr< typename Traits::extra_data_factory_t > extra_data_factory_handle_t
An alias for shared-pointer to extra-data-factory.
connection_settings_t(Settings &&settings, http_parser_settings parser_settings, timer_manager_handle_t timer_manager)
const http_parser_settings m_parser_settings
Parser settings.
timer_manager_handle_t m_timer_manager
Timer factory for timout guards.
std::chrono::steady_clock::duration m_handle_request_timeout
std::shared_ptr< timer_manager_t > timer_manager_handle_t
std::unique_ptr< request_handler_t > m_request_handler
Request handler factory.
connection_settings_t(const connection_settings_t &)=delete
const std::unique_ptr< logger_t > m_logger
connection_settings_t(const connection_settings_t &&)=delete
typename Traits::timer_manager_t timer_manager_t
extra_data_factory_handle_t m_extra_data_factory
A factory for instances of extra-data incorporated into a request.
std::chrono::steady_clock::duration m_write_http_response_timelimit
const incoming_http_msg_limits_t m_incoming_http_msg_limits
std::chrono::steady_clock::duration m_read_next_http_message_timelimit
auto create_timer_guard()
Create new timer guard.
Utilities for suppressing exceptions from some code block.