RESTinio
|
Helper class for running an existing HTTP-server on a thread pool without blocking the current thread. More...
#include <http_server_run.hpp>
Public Member Functions | |
on_pool_runner_t (const on_pool_runner_t &)=delete | |
on_pool_runner_t (on_pool_runner_t &&)=delete | |
on_pool_runner_t (std::size_t pool_size, Http_Server &server) | |
Initializing constructor. More... | |
void | start () |
Start the server. More... | |
bool | started () const noexcept |
Is server started. More... | |
void | stop () |
Stop the server. More... | |
void | wait () |
Wait for full stop of the server. More... | |
Private Attributes | |
Http_Server & | m_server |
HTTP-server to be run. More... | |
impl::ioctx_on_thread_pool_t< impl::external_io_context_for_thread_pool_t > | m_pool |
Thread pool for running the server. More... | |
Helper class for running an existing HTTP-server on a thread pool without blocking the current thread.
Usage of run() functions has some drawbacks. For example, the current thread on that run() is called, will be blocked until run() returns.
Sometimes it is not appropriate and leads to tricks like that:
Writing such code is a boring and error-prone task. The class on_pool_runner_t can be used instead:
Moreover the code at point (1) in the example above it not necessary because on_pool_runner_t automatically stops the server in the destructor.
Definition at line 699 of file http_server_run.hpp.
|
delete |
|
delete |
|
inline |
Initializing constructor.
pool_size | Size of thread pool. |
server | Server instance to be run. NOTE. This reference must be valid for all life-time of on_pool_runner instance. |
Definition at line 713 of file http_server_run.hpp.
|
inline |
Start the server.
Definition at line 726 of file http_server_run.hpp.
|
inlinenoexcept |
Is server started.
Definition at line 740 of file http_server_run.hpp.
|
inline |
Stop the server.
Definition at line 744 of file http_server_run.hpp.
|
inline |
Wait for full stop of the server.
Definition at line 758 of file http_server_run.hpp.
|
private |
Thread pool for running the server.
Definition at line 706 of file http_server_run.hpp.
|
private |
HTTP-server to be run.
Definition at line 702 of file http_server_run.hpp.