Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
i_server.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
12#pragma once
13
22#include "i_network_component.h"
23#include "i_session.h"
24
25#include <cstdint>
26#include <functional>
27#include <memory>
28#include <string_view>
29#include <system_error>
30#include <vector>
31
33
35{
36
61 {
62 public:
64 using connection_callback_t = std::function<void(std::shared_ptr<i_session>)>;
66 using disconnection_callback_t = std::function<void(std::string_view)>;
68 using receive_callback_t = std::function<void(std::string_view, const std::vector<uint8_t>&)>;
70 using error_callback_t = std::function<void(std::string_view, std::error_code)>;
71
84 [[nodiscard]] virtual auto start(uint16_t port) -> VoidResult = 0;
85
98 [[nodiscard]] virtual auto stop() -> VoidResult = 0;
99
104 [[nodiscard]] virtual auto connection_count() const -> size_t = 0;
105
110 virtual auto set_connection_callback(connection_callback_t callback) -> void = 0;
111
116 virtual auto set_disconnection_callback(disconnection_callback_t callback) -> void = 0;
117
122 virtual auto set_receive_callback(receive_callback_t callback) -> void = 0;
123
128 virtual auto set_error_callback(error_callback_t callback) -> void = 0;
129 };
130
131} // namespace kcenon::network::interfaces
Base interface for all network components.
Base interface for server-side network components.
Definition i_server.h:61
virtual auto set_disconnection_callback(disconnection_callback_t callback) -> void=0
Sets the callback for disconnections.
virtual auto stop() -> VoidResult=0
Stops the server and closes all connections.
virtual auto start(uint16_t port) -> VoidResult=0
Starts the server and begins listening for connections.
virtual auto set_error_callback(error_callback_t callback) -> void=0
Sets the callback for errors.
virtual auto connection_count() const -> size_t=0
Gets the number of active connections.
virtual auto set_receive_callback(receive_callback_t callback) -> void=0
Sets the callback for received data.
virtual auto set_connection_callback(connection_callback_t callback) -> void=0
Sets the callback for new connections.
std::function< void(std::string_view, const std::vector< uint8_t > &)> receive_callback_t
Callback type for received data (session_id, data)
Definition i_server.h:68
std::function< void(std::string_view)> disconnection_callback_t
Callback type for disconnections (session_id)
Definition i_server.h:66
std::function< void(std::string_view, std::error_code)> error_callback_t
Callback type for errors (session_id, error)
Definition i_server.h:70
std::function< void(std::shared_ptr< i_session >)> connection_callback_t
Callback type for new connections.
Definition i_server.h:64
Base interface for all network components.
Session interface representing an active client-server connection.
Public header for Result<T> error handling types.