12 #include <restinio/impl/ioctx_on_thread_pool.hpp> 14 #include <restinio/http_server.hpp> 85 template<
typename Traits>
136 template<
typename Traits>
149 std::size_t pool_size )
185 std::size_t pool_size )
214 template<
typename Traits>
219 asio_ns::io_context & ioctx,
269 template<
typename Traits>
344 template<
typename Traits>
375 template<
typename Traits>
380 asio_ns::io_context & ioctx,
404 template<
typename Traits>
421 std::size_t pool_size,
427 http_server_t<Traits> & server )
468 template<
typename Traits>
471 std::size_t pool_size,
473 http_server_t<Traits> & server )
584 template<
typename Traits>
698 template<
typename Http_Server>
715 std::size_t pool_size,
719 Http_Server & server )
void initiate_shutdown(http_server_t< Traits > &server)
Helper function for initiation of server shutdown.
void run(run_on_thread_pool_settings_t< Traits > &&settings)
Helper function for running http server until ctrl+c is hit.
void stop()
Stop the server.
void wait()
Wait for full stop of the server.
void run_without_break_signal_handling(ioctx_on_thread_pool_t< Io_Context_Holder > &pool, http_server_t< Traits > &server)
An implementation of run-function for thread pool case with existing http_server instance.
std::size_t m_pool_size
Size of the pool.
Helper type for holding parameters necessary for running HTTP-server on a thread pool.
void run(run_existing_server_on_thread_pool_t< Traits > &¶ms)
Helper function for running an existing HTTP-server on a thread pool.
run_existing_server_on_thread_pool_t(std::size_t pool_size, break_signal_handling_t break_handling, http_server_t< Traits > &server)
Initializing constructor.
run_on_this_thread_settings_t< Traits > on_this_thread()
A special marker for the case when http_server must be run on the context of the current thread...
constexpr break_signal_handling_t skip_break_signal_handling() noexcept
Make the indicator for absence of break signal handler.
void run(ioctx_on_thread_pool_t< Io_Context_Holder > &pool, run_on_thread_pool_settings_t< Traits > &&settings)
An implementation of run-function for thread pool case.
Helper class for running an existing HTTP-server on a thread pool without blocking the current thread...
std::size_t m_pool_size
Size of thread pool.
void run(run_on_this_thread_settings_t< Traits > &&settings)
Helper function for running http server until ctrl+c is hit.
on_pool_runner_t(std::size_t pool_size, Http_Server &server)
Initializing constructor.
http_server_t< Traits > * m_server
HTTP-server to be used on a thread pool.
Http_Server & m_server
HTTP-server to be run.
std::size_t pool_size() const noexcept
void run(asio_ns::io_context &ioctx, run_on_this_thread_settings_t< Traits > &&settings)
Helper function for running http server until ctrl+c is hit.
run_existing_server_on_thread_pool_t< Traits > on_thread_pool(std::size_t pool_size, break_signal_handling_t break_handling, http_server_t< Traits > &server)
Helper function for running an existing HTTP-server on a thread pool.
break_signal_handling_t
Indication of usage of break signal handlers for some forms of run functions.
void start()
Start the server.
on_pool_runner_t(on_pool_runner_t &&)=delete
break_signal_handling_t m_break_handling
Should break signal handler be used?
constexpr break_signal_handling_t use_break_signal_handling() noexcept
Make the indicator for usage of break signal handler.
on_pool_runner_t(const on_pool_runner_t &)=delete
void run_with_break_signal_handling(ioctx_on_thread_pool_t< Io_Context_Holder > &pool, http_server_t< Traits > &server)
An implementation of run-function for thread pool case with existing http_server instance.
Settings for the case when http_server must be run on the context of the current thread.
std::size_t pool_size() const
Get the pool size.
bool started() const noexcept
Is server started.
run_on_thread_pool_settings_t(std::size_t pool_size)
Constructor.
Settings for the case when http_server must be run on the context of the current thread.
run_on_thread_pool_settings_t< Traits > on_thread_pool(std::size_t pool_size)
A special marker for the case when http_server must be run on an thread pool.
Signal handler should not be used by run() function.
void run(asio_ns::io_context &ioctx, run_on_thread_pool_settings_t< Traits > &&settings)
Helper function for running http server until ctrl+c is hit.
Signal handler should be used by run() function.
break_signal_handling_t break_handling() const noexcept
http_server_t< Traits > & server() const noexcept
std::enable_if< std::is_same< Parameter_Container, query_string_params_t >::value||std::is_same< Parameter_Container, router::route_params_t >::value, optional_t< Value_Type > >::type opt_value(const Parameter_Container ¶ms, string_view_t key)
Gets the value of a parameter specified by key wrapped in optional_t<Value_Type> if parameter exists ...
impl::ioctx_on_thread_pool_t< impl::external_io_context_for_thread_pool_t > m_pool
Thread pool for running the server.