Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
kcenon::network::concepts::Socket Concept Reference

Base concept for all socket types. More...

#include <socket_concepts.h>

Concept definition

template<typename T>
concept kcenon::network::concepts::Socket = requires(T& socket) {
{ socket.close() } -> std::same_as<void>;
{ socket.is_closed() } -> std::convertible_to<bool>;
}
Base concept for all socket types.

Detailed Description

Base concept for all socket types.

All socket implementations must provide:

  • close(): Safely close the socket and stop async operations
  • is_closed(): Check if the socket has been closed

Example usage:

template<Socket S>
void shutdown_socket(S& socket) {
if (!socket.is_closed()) {
socket.close();
}
}

Definition at line 78 of file socket_concepts.h.