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

44 lines
909 B
C++

#ifndef seafire__common__io__tcp_acceptor_hxx_
#define seafire__common__io__tcp_acceptor_hxx_
#include <seafire/common/diagnostics.hxx>
#include <seafire/common/io/acceptor.hxx>
#include <asio.hpp>
namespace seafire::common::io
{
/// Implements an tcp acceptor.
///
class tcp_acceptor_t
: public acceptor_t
{
public:
tcp_acceptor_t(asio::io_context&,
asio::ip::tcp::endpoint const&);
tcp_acceptor_t(tcp_acceptor_t const&) = delete;
tcp_acceptor_t(tcp_acceptor_t&&) = delete;
~tcp_acceptor_t() noexcept override;
asio::any_io_executor const&
get_executor() override;
void
async_accept(accept_handler_t) override;
tcp_acceptor_t& operator=(tcp_acceptor_t const&) = delete;
tcp_acceptor_t& operator=(tcp_acceptor_t&&) = delete;
private:
asio::ip::tcp::acceptor acceptor_;
};
} // namespace seafire::common::io
#endif