37 lines
780 B
C++
37 lines
780 B
C++
|
#include <seafire/common/io/tcp-acceptor.hxx>
|
||
|
#include <seafire/common/io/tcp-socket.hxx>
|
||
|
|
||
|
|
||
|
namespace seafire::common::io
|
||
|
{
|
||
|
|
||
|
tcp_acceptor_t::
|
||
|
tcp_acceptor_t(asio::io_context& io_context,
|
||
|
asio::ip::tcp::endpoint const& endpoint)
|
||
|
: acceptor_{io_context, endpoint}
|
||
|
{}
|
||
|
|
||
|
tcp_acceptor_t::
|
||
|
~tcp_acceptor_t() noexcept = default;
|
||
|
|
||
|
asio::any_io_executor const&
|
||
|
tcp_acceptor_t::
|
||
|
get_executor()
|
||
|
{
|
||
|
return acceptor_.get_executor();
|
||
|
}
|
||
|
|
||
|
void
|
||
|
tcp_acceptor_t::
|
||
|
async_accept(accept_handler_t handler)
|
||
|
{
|
||
|
auto bound = [handler](std::error_code const& ec, asio::ip::tcp::socket socket)
|
||
|
{
|
||
|
handler(ec, std::make_unique<tcp_socket_t>(std::move(socket)));
|
||
|
};
|
||
|
|
||
|
acceptor_.async_accept(bound);
|
||
|
}
|
||
|
|
||
|
} // namespace seafire::common::io
|