23 #include <string_view>
49 TcpServer(uint16_t port, std::shared_ptr<boost::asio::io_context> external_ioc);
50 explicit TcpServer(std::shared_ptr<interface::Channel> channel);
62 std::future<
bool> start() override;
64 bool is_listening() const override;
67 bool broadcast(std::string_view data) override;
68 bool send_to(
size_t client_id, std::string_view data) override;
77 size_t get_client_count() const override;
78 std::vector<
size_t> get_connected_clients() const override;
81 TcpServer& auto_manage(
bool manage = true);
82 TcpServer& enable_port_retry(
bool enable = true,
int max_retries = 3,
int retry_interval_ms = 1000);
84 TcpServer& set_client_limit(
size_t max_clients);
86 TcpServer& notify_send_failure(
bool enable = true);
87 TcpServer& set_manage_external_context(
bool manage);
91 const
Impl* get_impl()
const {
return impl_.get(); }
92 Impl* get_impl() {
return impl_.get(); }
93 std::unique_ptr<Impl> impl_;
Interface for 1:N server communication (e.g., TcpServer)
std::function< void(const ErrorContext &)> ErrorHandler
std::function< void(const ConnectionContext &)> ConnectionHandler
std::function< void(const MessageContext &)> MessageHandler
Modernized TCP Server Wrapper.
TcpServer(TcpServer &&) noexcept
wrapper::TcpServer TcpServer