12#include <unordered_map>
77 [[nodiscard]]
auto is_running() const ->
bool override;
104 auto
track_session(std::shared_ptr<session::messaging_session> session)
105 -> std::shared_ptr<interfaces::i_session>;
108 std::shared_ptr<core::messaging_server>
server_;
118 std::unordered_map<std::
string, std::shared_ptr<session::messaging_session>>
sessions_;
Unified interface for all protocol server implementations.
std::function< void(std::string_view)> disconnection_callback_t
Callback type for disconnections (session_id)
std::function< void(std::string_view, const std::vector< uint8_t > &)> receive_callback_t
Callback type for received data (session_id, data)
std::function< void(std::string_view, std::error_code)> error_callback_t
Callback type for errors (session_id, error)
std::function< void(std::shared_ptr< i_session >)> connection_callback_t
Callback type for new connections.
Adapter that wraps messaging_server to implement i_protocol_server.
auto set_error_callback(error_callback_t callback) -> void override
Sets the callback for errors.
tcp_server_adapter & operator=(tcp_server_adapter &&)=delete
receive_callback_t receive_callback_
std::unordered_map< std::string, std::shared_ptr< session::messaging_session > > sessions_
~tcp_server_adapter() override
Destructor ensures proper cleanup.
connection_callback_t connection_callback_
auto set_disconnection_callback(disconnection_callback_t callback) -> void override
Sets the callback for disconnections.
auto set_connection_callback(connection_callback_t callback) -> void override
Sets the callback for new connections.
tcp_server_adapter(tcp_server_adapter &&)=delete
auto setup_internal_callbacks() -> void
Sets up internal callbacks to bridge legacy callbacks to i_protocol_server callbacks.
auto track_session(std::shared_ptr< session::messaging_session > session) -> std::shared_ptr< interfaces::i_session >
Tracks a session and returns it as i_session.
error_callback_t error_callback_
auto is_running() const -> bool override
Checks if the component is currently running.
tcp_server_adapter & operator=(const tcp_server_adapter &)=delete
auto stop() -> VoidResult override
Stops the server and closes all connections.
auto connection_count() const -> size_t override
Gets the number of active client connections.
tcp_server_adapter(const tcp_server_adapter &)=delete
std::mutex sessions_mutex_
std::shared_ptr< core::messaging_server > server_
std::mutex callbacks_mutex_
auto start(uint16_t port) -> VoidResult override
Starts the server and begins listening for connections.
auto set_receive_callback(receive_callback_t callback) -> void override
Sets the callback for received data.
disconnection_callback_t disconnection_callback_
tcp_server_adapter(std::string_view server_id)
Constructs an adapter with a unique server ID.
auto wait_for_stop() -> void override
Blocks until the component has stopped.
Protocol-specific server interface extending i_server.
kcenon::network::session::messaging_session messaging_session
kcenon::network::core::messaging_server messaging_server