Seafire-Common/seafire/common/io/tcp-acceptor.cxx
2025-03-07 02:25:52 +01:00

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