Convenience header for all protocol factory functions.
This header provides a single include point for all protocol-specific factory functions that create unified interface implementations.
auto tcp_conn = protocol::tcp::connect({"localhost", 8080});
tcp_conn->set_callbacks({
.on_connected = []() { std::cout << "Connected!\n"; },
.on_data = [](std::span<const std::byte>
data) {
}
});
.on_accept = [](std::string_view conn_id) {
std::cout << "New connection: " << conn_id << "\n";
}
});
auto udp_conn = protocol::udp::connect({"localhost", 5555});
udp_conn->set_callbacks({
.on_data = [](std::span<const std::byte>
data) {
}
});
.on_accept = [](std::string_view conn_id) {
std::cout << "New endpoint: " << conn_id << "\n";
},
.on_data = [](std::string_view conn_id, std::span<const std::byte>
data) {
}
});
auto ws_conn = protocol::websocket::connect("ws://localhost:8080/ws");
ws_conn->set_callbacks({
.on_connected = []() { std::cout << "WebSocket connected!\n"; },
.on_data = [](std::span<const std::byte>
data) {
}
});
auto ws_server = protocol::websocket::listen(8080,
"/ws");
.on_accept = [](std::string_view conn_id) {
std::cout << "New WebSocket client: " << conn_id << "\n";
},
.on_data = [](std::string_view conn_id, std::span<const std::byte>
data) {
}
});
auto quic_conn = protocol::quic::connect({"example.com", 443}, quic_cfg);
quic_conn->set_callbacks({
.on_connected = []() { std::cout << "QUIC connected!\n"; },
.on_data = [](std::span<const std::byte>
data) {
}
});
server_cfg.
key_file =
"/path/to/key.pem";
auto quic_server = protocol::quic::listen(443, server_cfg);
.on_accept = [](std::string_view conn_id) {
std::cout << "New QUIC client: " << conn_id << "\n";
},
.on_data = [](std::string_view conn_id, std::span<const std::byte>
data) {
}
});
unified_messaging_server< protocol::tcp_protocol, policy::no_tls > tcp_server
Type alias for plain TCP server.
unified_udp_messaging_server< policy::no_tls > udp_server
Type alias for plain UDP server.
messaging_ws_server ws_server
Type alias for WebSocket server (plain).
messaging_quic_server quic_server
Type alias for QUIC server.
Main namespace for all Network System components.
Convenience header for all protocol factory functions.
Configuration options for QUIC connections.
std::string cert_file
Path to certificate file (required for server)
std::string key_file
Path to private key file (required for server)
std::string server_name
Server name for TLS SNI (required for client connections)
std::vector< std::string > alpn_protocols
ALPN (Application-Layer Protocol Negotiation) protocols.