unilink  0.4.3
A simple C++ library for unified async communication
unilink::builder::TcpServerBuilder Class Reference

Modernized Builder for TcpServer. More...

#include <tcp_server_builder.hpp>

Inheritance diagram for unilink::builder::TcpServerBuilder:
unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >

Public Member Functions

 TcpServerBuilder (uint16_t port)
 
 TcpServerBuilder (const TcpServerBuilder &)=delete
 
TcpServerBuilderoperator= (const TcpServerBuilder &)=delete
 
 TcpServerBuilder (TcpServerBuilder &&)=default
 
TcpServerBuilderoperator= (TcpServerBuilder &&)=default
 
std::unique_ptr< wrapper::TcpServerbuild () override
 Build and return the configured TcpServer. More...
 
TcpServerBuilderauto_manage (bool auto_manage=true) override
 Enable auto-manage functionality. More...
 
TcpServerBuilderon_data (std::function< void(const wrapper::MessageContext &)> handler) override
 Set data handler callback. More...
 
TcpServerBuilderon_connect (std::function< void(const wrapper::ConnectionContext &)> handler) override
 Set connection handler callback. More...
 
TcpServerBuilderon_disconnect (std::function< void(const wrapper::ConnectionContext &)> handler) override
 Set disconnection handler callback. More...
 
TcpServerBuilderon_error (std::function< void(const wrapper::ErrorContext &)> handler) override
 Set error handler callback. More...
 
TcpServerBuilderuse_independent_context (bool use_independent=true)
 Use independent IoContext for this server. More...
 
TcpServerBuilderenable_port_retry (bool enable=true, int max_retries=3, int retry_interval_ms=1000)
 Enable port binding retry on failure. More...
 
TcpServerBuilderidle_timeout (int timeout_ms)
 Set idle connection timeout. More...
 
TcpServerBuildermax_clients (size_t max)
 Set maximum number of clients. More...
 
TcpServerBuildersingle_client ()
 Configure server for single client mode. More...
 
TcpServerBuildermulti_client (size_t max)
 Configure server for multi-client mode with limit. More...
 
TcpServerBuilderunlimited_clients ()
 Configure server for unlimited multi-client mode. More...
 

Additional Inherited Members

Detailed Description

Modernized Builder for TcpServer.

Definition at line 35 of file tcp_server_builder.hpp.

Constructor & Destructor Documentation

◆ TcpServerBuilder() [1/3]

unilink::builder::TcpServerBuilder::TcpServerBuilder ( uint16_t  port)
explicit

Definition at line 28 of file tcp_server_builder.cc.

◆ TcpServerBuilder() [2/3]

unilink::builder::TcpServerBuilder::TcpServerBuilder ( const TcpServerBuilder )
delete

◆ TcpServerBuilder() [3/3]

unilink::builder::TcpServerBuilder::TcpServerBuilder ( TcpServerBuilder &&  )
default

Member Function Documentation

◆ auto_manage()

TcpServerBuilder & unilink::builder::TcpServerBuilder::auto_manage ( bool  auto_manage = true)
overridevirtual

Enable auto-manage functionality.

Parameters
auto_manageWhether to automatically manage the server lifecycle
Returns
TcpServerBuilder& Reference to this builder

Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.

Definition at line 80 of file tcp_server_builder.cc.

◆ build()

std::unique_ptr< wrapper::TcpServer > unilink::builder::TcpServerBuilder::build ( )
overridevirtual

Build and return the configured TcpServer.

Returns
std::unique_ptr<wrapper::TcpServer> The configured server instance

Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.

Definition at line 44 of file tcp_server_builder.cc.

◆ enable_port_retry()

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.

◆ idle_timeout()

TcpServerBuilder & unilink::builder::TcpServerBuilder::idle_timeout ( int  timeout_ms)

Set idle connection timeout.

Definition at line 117 of file tcp_server_builder.cc.

◆ max_clients()

TcpServerBuilder & unilink::builder::TcpServerBuilder::max_clients ( size_t  max)

Set maximum number of clients.

Definition at line 122 of file tcp_server_builder.cc.

◆ multi_client()

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.

◆ on_connect()

TcpServerBuilder & unilink::builder::TcpServerBuilder::on_connect ( std::function< void(const wrapper::ConnectionContext &)>  handler)
overridevirtual

Set connection handler callback.

Parameters
handlerFunction to handle connection events with context
Returns
Derived& Reference to this builder for method chaining

Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.

Definition at line 90 of file tcp_server_builder.cc.

◆ on_data()

TcpServerBuilder & unilink::builder::TcpServerBuilder::on_data ( std::function< void(const wrapper::MessageContext &)>  handler)
overridevirtual

Set data handler callback.

Parameters
handlerFunction to handle incoming data with context
Returns
Derived& Reference to this builder for method chaining

Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.

Definition at line 85 of file tcp_server_builder.cc.

◆ on_disconnect()

TcpServerBuilder & unilink::builder::TcpServerBuilder::on_disconnect ( std::function< void(const wrapper::ConnectionContext &)>  handler)
overridevirtual

Set disconnection handler callback.

Parameters
handlerFunction to handle disconnection events with context
Returns
Derived& Reference to this builder for method chaining

Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.

Definition at line 95 of file tcp_server_builder.cc.

◆ on_error()

TcpServerBuilder & unilink::builder::TcpServerBuilder::on_error ( std::function< void(const wrapper::ErrorContext &)>  handler)
overridevirtual

Set error handler callback.

Parameters
handlerFunction to handle error events with context
Returns
Derived& Reference to this builder for method chaining

Implements unilink::builder::BuilderInterface< wrapper::TcpServer, TcpServerBuilder >.

Definition at line 100 of file tcp_server_builder.cc.

◆ operator=() [1/2]

TcpServerBuilder& unilink::builder::TcpServerBuilder::operator= ( const TcpServerBuilder )
delete

◆ operator=() [2/2]

TcpServerBuilder& unilink::builder::TcpServerBuilder::operator= ( TcpServerBuilder &&  )
default

◆ single_client()

TcpServerBuilder & unilink::builder::TcpServerBuilder::single_client ( )

Configure server for single client mode.

Definition at line 130 of file tcp_server_builder.cc.

◆ unlimited_clients()

TcpServerBuilder & unilink::builder::TcpServerBuilder::unlimited_clients ( )

Configure server for unlimited multi-client mode.

Definition at line 138 of file tcp_server_builder.cc.

◆ use_independent_context()

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.


The documentation for this class was generated from the following files: