3 #include "fly/net/socket/concepts.hpp"
4 #include "fly/net/socket/detail/base_socket.hpp"
15 template <IPEndpo
int Endpo
intType>
25 template <IPEndpo
int Endpo
intType>
28 public std::enable_shared_from_this<ListenSocket<EndpointType>>
40 explicit ListenSocket(std::shared_ptr<NetworkConfig> config) noexcept;
48 ListenSocket(std::shared_ptr<NetworkConfig> config, IOMode mode) noexcept;
84 std::optional<TcpSocket<EndpointType>>
accept();
115 static std::shared_ptr<ListenSocket> create_socket(
116 const std::shared_ptr<SocketService> &service,
117 std::shared_ptr<NetworkConfig> config);
127 const std::shared_ptr<SocketService> &service,
128 std::shared_ptr<NetworkConfig> config) noexcept;
139 void ready_to_accept(AcceptCompletion &&callback);
144 bool m_is_listening {
false};
Definition: listen_socket.hpp:29
ListenSocket(std::shared_ptr< NetworkConfig > config) noexcept
Definition: listen_socket.cpp:15
bool is_listening() const
Definition: listen_socket.cpp:88
std::optional< TcpSocket< EndpointType > > accept()
Definition: listen_socket.cpp:95
bool listen()
Definition: listen_socket.cpp:80
ListenSocket & operator=(ListenSocket &&socket) noexcept
Definition: listen_socket.cpp:70
bool accept_async(AcceptCompletion &&callback)
Definition: listen_socket.cpp:114
Definition: socket_service.hpp:26
Definition: tcp_socket.hpp:31
Definition: base_socket.hpp:29
fly::net::IOMode io_mode() const
Definition: base_socket.cpp:132
std::shared_ptr< fly::net::NetworkConfig > network_config() const
Definition: base_socket.cpp:189
socket_type handle() const
Definition: base_socket.cpp:102
void close()
Definition: base_socket.cpp:146
std::shared_ptr< fly::net::SocketService > socket_service() const
Definition: base_socket.cpp:182