|
unilink
0.4.3
A simple C++ library for unified async communication
|
Thread-safe TCP Server implementation. More...
#include <tcp_server.hpp>
Classes | |
| struct | Impl |
Public Types | |
| using | MultiClientConnectHandler = std::function< void(size_t client_id, const std::string &client_info)> |
| using | MultiClientDataHandler = std::function< void(size_t client_id, const std::string &data)> |
| using | MultiClientDisconnectHandler = std::function< void(size_t client_id)> |
Public Types inherited from unilink::interface::Channel | |
| using | OnBytes = std::function< void(memory::ConstByteSpan)> |
| using | OnState = std::function< void(base::LinkState)> |
| using | OnBackpressure = std::function< void(size_t)> |
Public Member Functions | |
| ~TcpServer () override | |
| TcpServer (TcpServer &&) noexcept | |
| TcpServer & | operator= (TcpServer &&) noexcept |
| TcpServer (const TcpServer &)=delete | |
| TcpServer & | operator= (const TcpServer &)=delete |
| void | start () override |
| void | stop () override |
| bool | is_connected () const override |
| void | async_write_copy (memory::ConstByteSpan data) override |
| void | async_write_move (std::vector< uint8_t > &&data) override |
| void | async_write_shared (std::shared_ptr< const std::vector< uint8_t >> data) override |
| void | on_bytes (OnBytes cb) override |
| void | on_state (OnState cb) override |
| void | on_backpressure (OnBackpressure cb) override |
| bool | broadcast (const std::string &message) |
| bool | send_to_client (size_t client_id, const std::string &message) |
| size_t | get_client_count () const |
| std::vector< size_t > | get_connected_clients () const |
| void | request_stop () |
| void | on_multi_connect (MultiClientConnectHandler handler) |
| void | on_multi_data (MultiClientDataHandler handler) |
| void | on_multi_disconnect (MultiClientDisconnectHandler handler) |
| void | set_client_limit (size_t max_clients) |
| void | set_unlimited_clients () |
| base::LinkState | get_state () const |
Public Member Functions inherited from unilink::interface::Channel | |
| virtual | ~Channel ()=default |
Static Public Member Functions | |
| static std::shared_ptr< TcpServer > | create (const config::TcpServerConfig &cfg) |
| static std::shared_ptr< TcpServer > | create (const config::TcpServerConfig &cfg, std::unique_ptr< interface::TcpAcceptorInterface > acceptor, boost::asio::io_context &ioc) |
Thread-safe TCP Server implementation.
Definition at line 44 of file tcp_server.hpp.
| using unilink::transport::TcpServer::MultiClientConnectHandler = std::function<void(size_t client_id, const std::string& client_info)> |
Definition at line 79 of file tcp_server.hpp.
| using unilink::transport::TcpServer::MultiClientDataHandler = std::function<void(size_t client_id, const std::string& data)> |
Definition at line 80 of file tcp_server.hpp.
| using unilink::transport::TcpServer::MultiClientDisconnectHandler = std::function<void(size_t client_id)> |
Definition at line 81 of file tcp_server.hpp.
|
override |
Definition at line 411 of file tcp_server.cc.
|
defaultnoexcept |
|
delete |
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 475 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 489 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 503 of file tcp_server.cc.
| bool unilink::transport::TcpServer::broadcast | ( | const std::string & | message | ) |
Definition at line 540 of file tcp_server.cc.
|
static |
Definition at line 395 of file tcp_server.cc.
|
static |
| size_t unilink::transport::TcpServer::get_client_count | ( | ) | const |
Definition at line 567 of file tcp_server.cc.
| std::vector< size_t > unilink::transport::TcpServer::get_connected_clients | ( | ) | const |
Definition at line 576 of file tcp_server.cc.
| base::LinkState unilink::transport::TcpServer::get_state | ( | ) | const |
Definition at line 621 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 469 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 525 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 517 of file tcp_server.cc.
| void unilink::transport::TcpServer::on_multi_connect | ( | MultiClientConnectHandler | handler | ) |
Definition at line 586 of file tcp_server.cc.
| void unilink::transport::TcpServer::on_multi_data | ( | MultiClientDataHandler | handler | ) |
Definition at line 590 of file tcp_server.cc.
| void unilink::transport::TcpServer::on_multi_disconnect | ( | MultiClientDisconnectHandler | handler | ) |
Definition at line 594 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 521 of file tcp_server.cc.
| void unilink::transport::TcpServer::request_stop | ( | ) |
Definition at line 462 of file tcp_server.cc.
| bool unilink::transport::TcpServer::send_to_client | ( | size_t | client_id, |
| const std::string & | message | ||
| ) |
Definition at line 555 of file tcp_server.cc.
| void unilink::transport::TcpServer::set_client_limit | ( | size_t | max_clients | ) |
Definition at line 599 of file tcp_server.cc.
| void unilink::transport::TcpServer::set_unlimited_clients | ( | ) |
Definition at line 610 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 421 of file tcp_server.cc.
|
overridevirtual |
Implements unilink::interface::Channel.
Definition at line 460 of file tcp_server.cc.