72auto tag_invoke(bind_t,
const socket_handle &socket,
73 const socket_address &addr) -> int;
87auto tag_invoke(listen_t,
const socket_handle &socket,
int backlog) -> int;
102auto tag_invoke(connect_t,
const socket_handle &socket,
116auto tag_invoke(connect_t,
const socket_handle &socket,
117 const socket_address &addr) -> int;
151auto tag_invoke(accept_t,
const socket_handle &socket, socket_address addr = {})
152 -> std::tuple<socket_handle, socket_address>;
164auto tag_invoke(sendmsg_t,
const socket_handle &socket,
180auto tag_invoke(sendmsg_t,
const socket_handle &socket,
181 const socket_message &msg) -> std::streamsize;
193auto tag_invoke(recvmsg_t,
const socket_handle &socket,
208auto tag_invoke(getsockopt_t,
const socket_handle &socket,
int level,
209 int optname,
void *optval,
socklen_type *optlen) -> int;
223auto tag_invoke(setsockopt_t,
const socket_handle &socket,
int level,
224 int optname,
const void *optval,
socklen_type optlen) -> int;
264auto tag_invoke(shutdown_t,
const socket_handle &socket,
int how) -> int;
276template <
typename... Args>
278 int cmd, Args &&...args) ->
int {
280 std::forward<Args>(args)...);
A thread-safe, move-only RAII wrapper for a native socket handle.
The io::socket namespace provides a cross-platform abstraction for socket-level I/O operations.
msghdr socket_message_type
The socket message type for POSIX systems.
sockaddr sockaddr_type
The generic socket address structure for POSIX systems.
int native_socket_type
The native socket handle type for POSIX systems.
auto tag_invoke(bind_t tag, const socket_handle &socket, const sockaddr_type *addr, socklen_type len) -> int
Binds a socket to a local address.
socklen_t socklen_type
The type used to represent socket-related sizes on POSIX systems.
This file defines the socket_address class, a platform-independent abstraction for socket addresses.
This file defines the socket_handle class, a cross-platform, thread-safe RAII wrapper for native sock...
This file defines the socket_message class, a thread-safe container for advanced socket I/O operation...
This file defines the socket customization point operations.
A tag type for the io::fcntl customization point object (CPO).