|
unilink
0.4.3
A simple C++ library for unified async communication
|
Modernized Builder for TcpServer. More...
#include <tcp_server_builder.hpp>
Public Member Functions | |
| TcpServerBuilder (uint16_t port) | |
| TcpServerBuilder (const TcpServerBuilder &)=delete | |
| TcpServerBuilder & | operator= (const TcpServerBuilder &)=delete |
| TcpServerBuilder (TcpServerBuilder &&)=default | |
| TcpServerBuilder & | operator= (TcpServerBuilder &&)=default |
| std::unique_ptr< wrapper::TcpServer > | build () override |
| Build and return the configured TcpServer. More... | |
| TcpServerBuilder & | auto_manage (bool auto_manage=true) override |
| Enable auto-manage functionality. More... | |
| TcpServerBuilder & | on_data (std::function< void(const wrapper::MessageContext &)> handler) override |
| Set data handler callback. More... | |
| TcpServerBuilder & | on_connect (std::function< void(const wrapper::ConnectionContext &)> handler) override |
| Set connection handler callback. More... | |
| TcpServerBuilder & | on_disconnect (std::function< void(const wrapper::ConnectionContext &)> handler) override |
| Set disconnection handler callback. More... | |
| TcpServerBuilder & | on_error (std::function< void(const wrapper::ErrorContext &)> handler) override |
| Set error handler callback. More... | |
| TcpServerBuilder & | use_independent_context (bool use_independent=true) |
| Use independent IoContext for this server. More... | |
| TcpServerBuilder & | enable_port_retry (bool enable=true, int max_retries=3, int retry_interval_ms=1000) |
| Enable port binding retry on failure. More... | |
| TcpServerBuilder & | idle_timeout (int timeout_ms) |
| Set idle connection timeout. More... | |
| TcpServerBuilder & | max_clients (size_t max) |
| Set maximum number of clients. More... | |
| TcpServerBuilder & | single_client () |
| Configure server for single client mode. More... | |
| TcpServerBuilder & | multi_client (size_t max) |
| Configure server for multi-client mode with limit. More... | |
| TcpServerBuilder & | unlimited_clients () |
| Configure server for unlimited multi-client mode. More... | |
Public Member Functions inherited from unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder > | |
| virtual | ~BuilderInterface ()=default |
| BuilderInterface ()=default | |
| BuilderInterface (const BuilderInterface &)=default | |
| BuilderInterface (BuilderInterface &&)=default | |
| BuilderInterface & | operator= (const BuilderInterface &)=default |
| BuilderInterface & | operator= (BuilderInterface &&)=default |
| TcpServerBuilder & | on_data (U *obj, F method) |
| Set data handler callback using member function pointer. More... | |
| TcpServerBuilder & | on_connect (U *obj, F method) |
| Set connection handler callback using member function pointer. More... | |
| TcpServerBuilder & | on_disconnect (U *obj, F method) |
| Set disconnection handler callback using member function pointer. More... | |
| TcpServerBuilder & | on_error (U *obj, F method) |
| Set error handler callback using member function pointer. More... | |
| TcpServerBuilder & | use_line_framer (std::string_view delimiter="\n", bool include_delimiter=false, size_t max_length=65536) |
| Use LineFramer for message segmentation (e.g., newline delimited) More... | |
| TcpServerBuilder & | use_packet_framer (const std::vector< uint8_t > &start_pattern, const std::vector< uint8_t > &end_pattern, size_t max_length) |
| Use PacketFramer for message segmentation (binary pattern matching) More... | |
| TcpServerBuilder & | on_message (std::function< void(memory::ConstByteSpan)> handler) |
| Set message handler callback (for framed messages) More... | |
| TcpServerBuilder & | on_message (U *obj, F method) |
| Set message handler callback using member function pointer. More... | |
Additional Inherited Members | |
Protected Attributes inherited from unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder > | |
| std::unique_ptr< framer::IFramer > | framer_ |
| std::function< void(memory::ConstByteSpan)> | on_message_ |
Modernized Builder for TcpServer.
Definition at line 35 of file tcp_server_builder.hpp.
|
explicit |
Definition at line 28 of file tcp_server_builder.cc.
|
delete |
|
default |
|
overridevirtual |
Enable auto-manage functionality.
| auto_manage | Whether to automatically manage the server lifecycle |
Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.
Definition at line 80 of file tcp_server_builder.cc.
|
overridevirtual |
Build and return the configured TcpServer.
Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.
Definition at line 44 of file tcp_server_builder.cc.
| TcpServerBuilder & unilink::builder::TcpServerBuilder::enable_port_retry | ( | bool | enable = true, |
| int | max_retries = 3, |
||
| int | retry_interval_ms = 1000 |
||
| ) |
Enable port binding retry on failure.
Definition at line 110 of file tcp_server_builder.cc.
| TcpServerBuilder & unilink::builder::TcpServerBuilder::idle_timeout | ( | int | timeout_ms | ) |
Set idle connection timeout.
Definition at line 117 of file tcp_server_builder.cc.
| TcpServerBuilder & unilink::builder::TcpServerBuilder::max_clients | ( | size_t | max | ) |
Set maximum number of clients.
Definition at line 122 of file tcp_server_builder.cc.
| TcpServerBuilder & unilink::builder::TcpServerBuilder::multi_client | ( | size_t | max | ) |
Configure server for multi-client mode with limit.
Definition at line 136 of file tcp_server_builder.cc.
|
overridevirtual |
Set connection handler callback.
| handler | Function to handle connection events with context |
Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.
Definition at line 90 of file tcp_server_builder.cc.
|
overridevirtual |
Set data handler callback.
| handler | Function to handle incoming data with context |
Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.
Definition at line 85 of file tcp_server_builder.cc.
|
overridevirtual |
Set disconnection handler callback.
| handler | Function to handle disconnection events with context |
Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.
Definition at line 95 of file tcp_server_builder.cc.
|
overridevirtual |
Set error handler callback.
| handler | Function to handle error events with context |
Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.
Definition at line 100 of file tcp_server_builder.cc.
|
delete |
|
default |
| TcpServerBuilder & unilink::builder::TcpServerBuilder::single_client | ( | ) |
Configure server for single client mode.
Definition at line 130 of file tcp_server_builder.cc.
| TcpServerBuilder & unilink::builder::TcpServerBuilder::unlimited_clients | ( | ) |
Configure server for unlimited multi-client mode.
Definition at line 138 of file tcp_server_builder.cc.
| TcpServerBuilder & unilink::builder::TcpServerBuilder::use_independent_context | ( | bool | use_independent = true | ) |
Use independent IoContext for this server.
Definition at line 105 of file tcp_server_builder.cc.