Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
callback_indices.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
5#pragma once
6
7#include <cstddef>
8#include <type_traits>
9
10namespace kcenon::network {
11
17enum class tcp_client_callback : std::size_t {
18 receive = 0,
19 connected = 1,
20 disconnected = 2,
21 error = 3
22};
23
29enum class tcp_server_callback : std::size_t {
30 connection = 0,
31 disconnection = 1,
32 receive = 2,
33 error = 3
34};
35
41enum class udp_client_callback : std::size_t {
42 receive = 0,
43 error = 1
44};
45
51enum class secure_udp_client_callback : std::size_t {
52 receive = 0,
53 connected = 1,
54 disconnected = 2,
55 error = 3
56};
57
63enum class udp_server_callback : std::size_t {
64 receive = 0,
65 error = 1
66};
67
75enum class unified_udp_client_callback : std::size_t {
76 receive = 0,
77 connected = 1,
78 disconnected = 2,
79 error = 3
80};
81
90enum class unified_udp_server_callback : std::size_t {
91 receive = 0,
94 error = 3
95};
96
103enum class ws_client_callback : std::size_t {
104 message = 0,
105 text_message = 1,
106 binary_message = 2,
107 connected = 3,
108 disconnected = 4,
109 error = 5
110};
111
118enum class ws_server_callback : std::size_t {
119 connection = 0,
120 disconnection = 1,
121 message = 2,
122 text_message = 3,
123 binary_message = 4,
124 error = 5
125};
126
133enum class quic_client_callback : std::size_t {
134 receive = 0,
135 stream_receive = 1,
136 connected = 2,
137 disconnected = 3,
138 error = 4
139};
140
147enum class quic_server_callback : std::size_t {
148 connection = 0,
149 disconnection = 1,
150 receive = 2,
151 stream_receive = 3,
152 error = 4
153};
154
161template <typename E>
162constexpr auto to_index(E e) noexcept -> std::size_t
163{
164 static_assert(std::is_enum_v<E>, "to_index requires an enum type");
165 return static_cast<std::size_t>(e);
166}
167
168} // namespace kcenon::network
Main namespace for all Network System components.
quic_client_callback
Callback indices for messaging_quic_client.
constexpr auto to_index(E e) noexcept -> std::size_t
Helper to convert enum to std::size_t for callback_manager access.
secure_udp_client_callback
Callback indices for secure_messaging_udp_client.
quic_server_callback
Callback indices for messaging_quic_server.
udp_server_callback
Callback indices for messaging_udp_server.
unified_udp_server_callback
Callback indices for unified_udp_messaging_server.
ws_client_callback
Callback indices for messaging_ws_client.
tcp_client_callback
Callback indices for messaging_client and secure_messaging_client.
udp_client_callback
Callback indices for messaging_udp_client.
tcp_server_callback
Callback indices for messaging_server and secure_messaging_server.
unified_udp_client_callback
Callback indices for unified_udp_messaging_client.
ws_server_callback
Callback indices for messaging_ws_server.