Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
udp_facade.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2024, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
11#pragma once
12
21#include <cstdint>
22#include <memory>
23#include <string>
24
28
30{
31
72{
73public:
79 {
81 std::string host;
82
84 uint16_t port = 0;
85
87 std::string client_id;
88 };
89
95 {
97 uint16_t port = 0;
98
100 std::string server_id;
101 };
102
117 [[nodiscard]] auto create_client(const client_config& config) const
119
133 [[nodiscard]] auto create_server(const server_config& config) const
135
136private:
138 [[nodiscard]] static auto generate_client_id() -> std::string;
139
141 [[nodiscard]] static auto generate_server_id() -> std::string;
142
144 static auto validate_client_config(const client_config& config) -> VoidResult;
145
147 static auto validate_server_config(const server_config& config) -> VoidResult;
148};
149
150} // namespace kcenon::network::facade
Simplified facade for creating UDP clients and servers.
Definition udp_facade.h:72
auto create_server(const server_config &config) const -> Result< std::shared_ptr< interfaces::i_protocol_server > >
Creates a UDP server with the specified configuration.
auto create_client(const client_config &config) const -> Result< std::shared_ptr< interfaces::i_protocol_client > >
Creates a UDP client with the specified configuration.
static auto validate_server_config(const server_config &config) -> VoidResult
Validates server configuration.
static auto generate_client_id() -> std::string
Generates a unique client ID.
static auto generate_server_id() -> std::string
Generates a unique server ID.
static auto validate_client_config(const client_config &config) -> VoidResult
Validates client configuration.
Protocol-specific client interface extending i_client.
Protocol-specific server interface extending i_server.
Result< std::monostate > VoidResult
Public header for Result<T> error handling types.
Configuration for creating a UDP client.
Definition udp_facade.h:79
std::string host
Target hostname or IP address.
Definition udp_facade.h:81
std::string client_id
Client identifier (optional, auto-generated if not provided)
Definition udp_facade.h:87
Configuration for creating a UDP server.
Definition udp_facade.h:95
std::string server_id
Server identifier (optional, auto-generated if not provided)
Definition udp_facade.h:100
uint16_t port
Port number to listen on.
Definition udp_facade.h:97