Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
11#pragma once
12
21#include <chrono>
22#include <cstdint>
23#include <functional>
24#include <span>
25#include <string>
26#include <string_view>
27#include <system_error>
28#include <vector>
29
31
57 std::string host;
58 uint16_t port = 0;
59
63 endpoint_info() = default;
64
70 endpoint_info(const std::string& h, uint16_t p) : host(h), port(p) {}
71
77 endpoint_info(const char* h, uint16_t p) : host(h), port(p) {}
78
86 explicit endpoint_info(const std::string& url) : host(url), port(0) {}
87
92 explicit endpoint_info(const char* url) : host(url), port(0) {}
93
98 [[nodiscard]] auto is_valid() const noexcept -> bool { return !host.empty(); }
99
104 [[nodiscard]] auto to_string() const -> std::string {
105 if (port == 0) {
106 return host;
107 }
108 return host + ":" + std::to_string(port);
109 }
110
114 [[nodiscard]] auto operator==(const endpoint_info& other) const noexcept -> bool {
115 return host == other.host && port == other.port;
116 }
117
121 [[nodiscard]] auto operator!=(const endpoint_info& other) const noexcept -> bool {
122 return !(*this == other);
123 }
124};
125
156 std::function<void()> on_connected;
157
159 std::function<void(std::span<const std::byte>)> on_data;
160
162 std::function<void()> on_disconnected;
163
165 std::function<void(std::error_code)> on_error;
166};
167
180 std::function<void(std::string_view)> on_accept;
181
183 std::function<void(std::string_view, std::span<const std::byte>)> on_data;
184
186 std::function<void(std::string_view)> on_disconnect;
187
189 std::function<void(std::string_view, std::error_code)> on_error;
190};
191
200 std::chrono::milliseconds connect_timeout{0};
201
203 std::chrono::milliseconds read_timeout{0};
204
206 std::chrono::milliseconds write_timeout{0};
207
209 bool keep_alive = false;
210
212 bool no_delay = false;
213};
214
215} // namespace kcenon::network::unified
Callback functions for connection events.
Definition types.h:154
std::function< void()> on_disconnected
Called when connection is closed.
Definition types.h:162
std::function< void(std::span< const std::byte >)> on_data
Called when data is received (raw bytes)
Definition types.h:159
std::function< void()> on_connected
Called when connection is established.
Definition types.h:156
std::function< void(std::error_code)> on_error
Called when an error occurs.
Definition types.h:165
Configuration options for connections.
Definition types.h:198
bool keep_alive
Enable TCP keep-alive (where applicable)
Definition types.h:209
std::chrono::milliseconds write_timeout
Write operation timeout (0 = no timeout)
Definition types.h:206
std::chrono::milliseconds connect_timeout
Connection timeout duration (0 = no timeout)
Definition types.h:200
bool no_delay
TCP no-delay (disable Nagle's algorithm)
Definition types.h:212
std::chrono::milliseconds read_timeout
Read operation timeout (0 = no timeout)
Definition types.h:203
Network endpoint information (host/port or URL)
Definition types.h:56
endpoint_info(const std::string &url)
Constructs endpoint from URL (port extracted if present)
Definition types.h:86
auto operator!=(const endpoint_info &other) const noexcept -> bool
Inequality comparison.
Definition types.h:121
auto is_valid() const noexcept -> bool
Checks if the endpoint is valid (non-empty host)
Definition types.h:98
endpoint_info(const std::string &h, uint16_t p)
Constructs endpoint from host and port.
Definition types.h:70
std::string host
Hostname, IP address, or full URL.
Definition types.h:57
uint16_t port
Port number (0 if embedded in URL)
Definition types.h:58
endpoint_info()=default
Default constructor creates an empty endpoint.
auto operator==(const endpoint_info &other) const noexcept -> bool
Equality comparison.
Definition types.h:114
endpoint_info(const char *url)
Constructs endpoint from C-string URL.
Definition types.h:92
auto to_string() const -> std::string
Returns string representation of the endpoint.
Definition types.h:104
endpoint_info(const char *h, uint16_t p)
Constructs endpoint from C-string host and port.
Definition types.h:77
Callback functions for listener/server events.
Definition types.h:178
std::function< void(std::string_view)> on_disconnect
Called when a connection is closed (connection ID)
Definition types.h:186
std::function< void(std::string_view, std::error_code)> on_error
Called when an error occurs (connection ID, error)
Definition types.h:189
std::function< void(std::string_view, std::span< const std::byte >)> on_data
Called when data is received from a connection (connection ID, data)
Definition types.h:183
std::function< void(std::string_view)> on_accept
Called when a new connection is accepted (connection ID)
Definition types.h:180