|
Network System 0.1.1
High-performance modular networking library for scalable client-server applications
|
Unified interface for all protocol server implementations. More...
#include <i_protocol_server.h>


Public Types | |
| using | connection_callback_t = std::function<void(std::shared_ptr<i_session>)> |
| Callback type for new connections. | |
| using | disconnection_callback_t = std::function<void(std::string_view)> |
| Callback type for disconnections (session_id) | |
| using | receive_callback_t = std::function<void(std::string_view, const std::vector<uint8_t>&)> |
| Callback type for received data (session_id, data) | |
| using | error_callback_t = std::function<void(std::string_view, std::error_code)> |
| Callback type for errors (session_id, error) | |
Public Member Functions | |
| virtual auto | start (uint16_t port) -> VoidResult=0 |
| Starts the server and begins listening for connections. | |
| virtual auto | stop () -> VoidResult=0 |
| Stops the server and closes all connections. | |
| virtual auto | connection_count () const -> size_t=0 |
| Gets the number of active client connections. | |
| virtual auto | set_connection_callback (connection_callback_t callback) -> void=0 |
| Sets the callback for new connections. | |
| virtual auto | set_disconnection_callback (disconnection_callback_t callback) -> void=0 |
| Sets the callback for disconnections. | |
| virtual auto | set_receive_callback (receive_callback_t callback) -> void=0 |
| Sets the callback for received data. | |
| virtual auto | set_error_callback (error_callback_t callback) -> void=0 |
| Sets the callback for errors. | |
Public Member Functions inherited from kcenon::network::interfaces::i_network_component | |
| virtual | ~i_network_component ()=default |
| Virtual destructor for proper cleanup of derived classes. | |
| i_network_component (const i_network_component &)=delete | |
| i_network_component & | operator= (const i_network_component &)=delete |
| i_network_component (i_network_component &&)=delete | |
| i_network_component & | operator= (i_network_component &&)=delete |
Additional Inherited Members | |
Protected Member Functions inherited from kcenon::network::interfaces::i_network_component | |
| i_network_component ()=default | |
| Default constructor (only for derived classes) | |
| virtual auto | is_running () const -> bool=0 |
| Checks if the component is currently running. | |
| virtual auto | wait_for_stop () -> void=0 |
| Blocks until the component has stopped. | |
Unified interface for all protocol server implementations.
This interface establishes a common contract for all protocol servers (TCP, UDP, HTTP, WebSocket, QUIC, etc.) in the network system. It provides a consistent API for server lifecycle management, connection handling, session management, and data broadcasting across different protocol implementations.
This interface was created to:
Implementations include:
All server implementations manage client connections as sessions. Sessions are represented by the i_session interface, which provides:
Servers use callbacks to notify application code of events:
Definition at line 111 of file i_protocol_server.h.
| using kcenon::network::interfaces::i_protocol_server::connection_callback_t = std::function<void(std::shared_ptr<i_session>)> |
Callback type for new connections.
Definition at line 115 of file i_protocol_server.h.
| using kcenon::network::interfaces::i_protocol_server::disconnection_callback_t = std::function<void(std::string_view)> |
Callback type for disconnections (session_id)
Definition at line 117 of file i_protocol_server.h.
| using kcenon::network::interfaces::i_protocol_server::error_callback_t = std::function<void(std::string_view, std::error_code)> |
Callback type for errors (session_id, error)
Definition at line 121 of file i_protocol_server.h.
| using kcenon::network::interfaces::i_protocol_server::receive_callback_t = std::function<void(std::string_view, const std::vector<uint8_t>&)> |
Callback type for received data (session_id, data)
Definition at line 119 of file i_protocol_server.h.
|
nodiscardpure virtual |
Gets the number of active client connections.
A connection is considered active if:
Thread-safe. Uses atomic operations for accurate count.
O(1) operation. Does not iterate through connections.
Implemented in kcenon::network::internal::adapters::http_server_adapter, kcenon::network::internal::adapters::quic_server_adapter, kcenon::network::internal::adapters::tcp_server_adapter, kcenon::network::internal::adapters::udp_server_adapter, and kcenon::network::internal::adapters::ws_server_adapter.
|
pure virtual |
Sets the callback for new connections.
| callback | The callback function. |
Called when:
The session object allows:
The callback may be invoked from I/O threads. If the callback accesses shared state, it must be thread-safe.
Implemented in kcenon::network::internal::adapters::http_server_adapter, kcenon::network::internal::adapters::quic_server_adapter, kcenon::network::internal::adapters::tcp_server_adapter, kcenon::network::internal::adapters::udp_server_adapter, and kcenon::network::internal::adapters::ws_server_adapter.
|
pure virtual |
Sets the callback for disconnections.
| callback | The callback function. |
Called when:
The callback is the appropriate place to:
The callback may be invoked from I/O threads. Session cleanup code must be thread-safe.
Implemented in kcenon::network::internal::adapters::http_server_adapter, kcenon::network::internal::adapters::quic_server_adapter, kcenon::network::internal::adapters::tcp_server_adapter, kcenon::network::internal::adapters::udp_server_adapter, and kcenon::network::internal::adapters::ws_server_adapter.
|
pure virtual |
Sets the callback for errors.
| callback | The callback function. |
The callback should:
Some errors trigger automatic session closure:
For these, disconnection_callback will also be invoked.
The callback may be invoked from I/O threads. Error handling code must be thread-safe.
Implemented in kcenon::network::internal::adapters::http_server_adapter, kcenon::network::internal::adapters::quic_server_adapter, kcenon::network::internal::adapters::tcp_server_adapter, kcenon::network::internal::adapters::udp_server_adapter, and kcenon::network::internal::adapters::ws_server_adapter.
|
pure virtual |
Sets the callback for received data.
| callback | The callback function. |
The data vector is passed by const reference. If the callback needs to retain the data, it must copy it. The data is valid only for the duration of the callback.
The callback may be invoked from I/O threads. Multiple callbacks may execute concurrently for different sessions.
Implemented in kcenon::network::internal::adapters::http_server_adapter, kcenon::network::internal::adapters::quic_server_adapter, kcenon::network::internal::adapters::tcp_server_adapter, kcenon::network::internal::adapters::udp_server_adapter, and kcenon::network::internal::adapters::ws_server_adapter.
|
nodiscardpure virtual |
Starts the server and begins listening for connections.
| port | The port number to listen on. |
Valid ports: 1-65535
Thread-safe. Only one start operation can succeed at a time. Subsequent calls while running will return an error.
Implemented in kcenon::network::internal::adapters::http_server_adapter, kcenon::network::internal::adapters::quic_server_adapter, kcenon::network::internal::adapters::tcp_server_adapter, kcenon::network::internal::adapters::udp_server_adapter, and kcenon::network::internal::adapters::ws_server_adapter.
|
nodiscardpure virtual |
Stops the server and closes all connections.
The stop operation attempts to:
Thread-safe. Safe to call from any thread including callbacks. The method blocks until shutdown is complete.
Implemented in kcenon::network::internal::adapters::http_server_adapter, kcenon::network::internal::adapters::quic_server_adapter, kcenon::network::internal::adapters::tcp_server_adapter, kcenon::network::internal::adapters::udp_server_adapter, and kcenon::network::internal::adapters::ws_server_adapter.