RESTinio
|
Context for accepting http connections. More...
#include <acceptor.hpp>
Public Types | |
using | connection_factory_t = impl::connection_factory_t< Traits > |
using | connection_factory_shared_ptr_t = std::shared_ptr< connection_factory_t > |
using | logger_t = typename Traits::logger_t |
using | strand_t = typename Traits::strand_t |
using | stream_socket_t = typename Traits::stream_socket_t |
using | socket_holder_base_t = socket_supplier_t< stream_socket_t > |
Public Member Functions | |
template<typename Settings > | |
acceptor_t (Settings &settings, asio_ns::io_context &io_context, connection_factory_shared_ptr_t connection_factory, logger_t &logger) | |
void | open () |
Start listen on port specified in ctor. More... | |
void | close () |
Close listener if any. More... | |
auto & | get_open_close_operations_executor () noexcept |
Get an executor for close operation. More... | |
Private Types | |
using | ip_blocker_base_t = acceptor_details::ip_blocker_holder_t< typename Traits::ip_blocker_t > |
Private Member Functions | |
auto & | get_executor () noexcept |
Get executor for acceptor. More... | |
void | accept_next (std::size_t i) |
Set a callback for a new connection. More... | |
void | accept_current_connection (std::size_t i, const std::error_code &ec) |
Accept current connection. More... | |
void | do_accept_current_connection (stream_socket_t incoming_socket, endpoint_t remote_endpoint) |
void | close_impl () |
Close opened acceptor. More... | |
Private Attributes | |
asio_ns::executor | m_executor |
Asio executor. More... | |
strand_t | m_open_close_operations_executor |
const bool | m_separate_accept_and_create_connect |
Do separate an accept operation and connection instantiation. More... | |
connection_factory_shared_ptr_t | m_connection_factory |
Factory for creating connections. More... | |
logger_t & | m_logger |
const std::uint16_t | m_port |
Server endpoint. More... | |
const asio_ns::ip::tcp | m_protocol |
const std::string | m_address |
std::unique_ptr< acceptor_options_setter_t > | m_acceptor_options_setter |
Server port listener and connection receiver routine. More... | |
asio_ns::ip::tcp::acceptor | m_acceptor |
Additional Inherited Members | |
![]() | |
socket_supplier_t (Settings &settings, asio_ns::io_context &io_context) | |
Traits::stream_socket_t & | socket (std::size_t idx) |
Get the reference to socket. More... | |
Traits::stream_socket_t | move_socket (std::size_t idx) |
Extract the socket via move. More... | |
auto | cuncurrent_accept_sockets_count () const noexcept |
The number of sockets that can be used for cuncurrent accept operations. More... | |
![]() | |
ip_blocker_holder_t (const Settings &settings) | |
restinio::ip_blocker::inspection_result_t | inspect_incoming (Socket &socket) const noexcept |
![]() | |
std::shared_ptr< Traits::ip_blocker_t > | m_ip_blocker |
Context for accepting http connections.
Definition at line 159 of file acceptor.hpp.
using restinio::impl::acceptor_t< Traits >::connection_factory_shared_ptr_t = std::shared_ptr< connection_factory_t > |
Definition at line 170 of file acceptor.hpp.
using restinio::impl::acceptor_t< Traits >::connection_factory_t = impl::connection_factory_t< Traits > |
Definition at line 168 of file acceptor.hpp.
|
private |
Definition at line 165 of file acceptor.hpp.
using restinio::impl::acceptor_t< Traits >::logger_t = typename Traits::logger_t |
Definition at line 171 of file acceptor.hpp.
using restinio::impl::acceptor_t< Traits >::socket_holder_base_t = socket_supplier_t< stream_socket_t > |
Definition at line 174 of file acceptor.hpp.
using restinio::impl::acceptor_t< Traits >::strand_t = typename Traits::strand_t |
Definition at line 172 of file acceptor.hpp.
using restinio::impl::acceptor_t< Traits >::stream_socket_t = typename Traits::stream_socket_t |
Definition at line 173 of file acceptor.hpp.
|
inline |
io_context | ASIO io_context to run on. |
connection_factory | Connection factory. |
logger | Logger. |
Definition at line 177 of file acceptor.hpp.
|
inlineprivate |
Accept current connection.
i | socket index in the pool of sockets. |
Definition at line 314 of file acceptor.hpp.
|
inlineprivate |
Set a callback for a new connection.
Definition at line 298 of file acceptor.hpp.
|
inline |
Close listener if any.
Definition at line 271 of file acceptor.hpp.
|
inlineprivate |
Close opened acceptor.
Definition at line 405 of file acceptor.hpp.
|
inlineprivate |
If connection handler was created,
Definition at line 373 of file acceptor.hpp.
|
inlineprivatenoexcept |
Get executor for acceptor.
Definition at line 294 of file acceptor.hpp.
|
inlinenoexcept |
Get an executor for close operation.
Definition at line 287 of file acceptor.hpp.
|
inline |
Start listen on port specified in ctor.
Definition at line 201 of file acceptor.hpp.
|
private |
Definition at line 430 of file acceptor.hpp.
|
private |
Server port listener and connection receiver routine.
Definition at line 429 of file acceptor.hpp.
|
private |
Definition at line 424 of file acceptor.hpp.
|
private |
Factory for creating connections.
Definition at line 441 of file acceptor.hpp.
|
private |
Asio executor.
Definition at line 434 of file acceptor.hpp.
|
private |
Definition at line 443 of file acceptor.hpp.
|
private |
Definition at line 435 of file acceptor.hpp.
|
private |
Server endpoint.
Definition at line 422 of file acceptor.hpp.
|
private |
Definition at line 423 of file acceptor.hpp.
|
private |
Do separate an accept operation and connection instantiation.
Definition at line 438 of file acceptor.hpp.