unilink  0.4.3
A simple C++ library for unified async communication
unilink::wrapper::TcpServer::Impl Struct Reference

Public Member Functions

 Impl (uint16_t port)
 
 Impl (uint16_t port, std::shared_ptr< boost::asio::io_context > external_ioc)
 
 Impl (std::shared_ptr< interface::Channel > channel)
 
 ~Impl ()
 
void fulfill_all (bool value)
 
std::future< bool > start ()
 
void stop ()
 
void setup_internal_handlers ()
 

Public Attributes

std::mutex mutex_
 
uint16_t port_
 
std::shared_ptr< interface::Channelchannel_
 
std::shared_ptr< boost::asio::io_context > external_ioc_
 
bool use_external_context_ {false}
 
bool manage_external_context_ {false}
 
std::thread external_thread_
 
std::unique_ptr< boost::asio::executor_work_guard< boost::asio::io_context::executor_type > > work_guard_
 
std::vector< std::promise< bool > > pending_promises_
 
bool started_ {false}
 
std::atomic< bool > is_listening_ {false}
 
bool auto_manage_ {false}
 
bool port_retry_enabled_ {false}
 
int max_port_retries_ {3}
 
int port_retry_interval_ms_ {1000}
 
int idle_timeout_ms_ {0}
 
bool client_limit_enabled_ {false}
 
size_t max_clients_ {0}
 
bool notify_send_failure_ {false}
 
ConnectionHandler on_client_connect_ {nullptr}
 
ConnectionHandler on_client_disconnect_ {nullptr}
 
MessageHandler on_data_ {nullptr}
 
ErrorHandler on_error_ {nullptr}
 

Detailed Description

Definition at line 36 of file tcp_server.cc.

Constructor & Destructor Documentation

◆ Impl() [1/3]

unilink::wrapper::TcpServer::Impl::Impl ( uint16_t  port)
inlineexplicit

Definition at line 65 of file tcp_server.cc.

◆ Impl() [2/3]

unilink::wrapper::TcpServer::Impl::Impl ( uint16_t  port,
std::shared_ptr< boost::asio::io_context >  external_ioc 
)
inline

Definition at line 78 of file tcp_server.cc.

◆ Impl() [3/3]

unilink::wrapper::TcpServer::Impl::Impl ( std::shared_ptr< interface::Channel channel)
inlineexplicit

Definition at line 94 of file tcp_server.cc.

◆ ~Impl()

unilink::wrapper::TcpServer::Impl::~Impl ( )
inline

Definition at line 110 of file tcp_server.cc.

Member Function Documentation

◆ fulfill_all()

void unilink::wrapper::TcpServer::Impl::fulfill_all ( bool  value)
inline

Definition at line 117 of file tcp_server.cc.

◆ setup_internal_handlers()

void unilink::wrapper::TcpServer::Impl::setup_internal_handlers ( )
inline

Definition at line 222 of file tcp_server.cc.

◆ start()

std::future<bool> unilink::wrapper::TcpServer::Impl::start ( )
inline

Definition at line 128 of file tcp_server.cc.

◆ stop()

void unilink::wrapper::TcpServer::Impl::stop ( )
inline

Definition at line 176 of file tcp_server.cc.

Member Data Documentation

◆ auto_manage_

bool unilink::wrapper::TcpServer::Impl::auto_manage_ {false}

Definition at line 51 of file tcp_server.cc.

◆ channel_

std::shared_ptr<interface::Channel> unilink::wrapper::TcpServer::Impl::channel_

Definition at line 39 of file tcp_server.cc.

◆ client_limit_enabled_

bool unilink::wrapper::TcpServer::Impl::client_limit_enabled_ {false}

Definition at line 56 of file tcp_server.cc.

◆ external_ioc_

std::shared_ptr<boost::asio::io_context> unilink::wrapper::TcpServer::Impl::external_ioc_

Definition at line 40 of file tcp_server.cc.

◆ external_thread_

std::thread unilink::wrapper::TcpServer::Impl::external_thread_

Definition at line 43 of file tcp_server.cc.

◆ idle_timeout_ms_

int unilink::wrapper::TcpServer::Impl::idle_timeout_ms_ {0}

Definition at line 55 of file tcp_server.cc.

◆ is_listening_

std::atomic<bool> unilink::wrapper::TcpServer::Impl::is_listening_ {false}

Definition at line 48 of file tcp_server.cc.

◆ manage_external_context_

bool unilink::wrapper::TcpServer::Impl::manage_external_context_ {false}

Definition at line 42 of file tcp_server.cc.

◆ max_clients_

size_t unilink::wrapper::TcpServer::Impl::max_clients_ {0}

Definition at line 57 of file tcp_server.cc.

◆ max_port_retries_

int unilink::wrapper::TcpServer::Impl::max_port_retries_ {3}

Definition at line 53 of file tcp_server.cc.

◆ mutex_

std::mutex unilink::wrapper::TcpServer::Impl::mutex_
mutable

Definition at line 37 of file tcp_server.cc.

◆ notify_send_failure_

bool unilink::wrapper::TcpServer::Impl::notify_send_failure_ {false}

Definition at line 58 of file tcp_server.cc.

◆ on_client_connect_

ConnectionHandler unilink::wrapper::TcpServer::Impl::on_client_connect_ {nullptr}

Definition at line 60 of file tcp_server.cc.

◆ on_client_disconnect_

ConnectionHandler unilink::wrapper::TcpServer::Impl::on_client_disconnect_ {nullptr}

Definition at line 61 of file tcp_server.cc.

◆ on_data_

MessageHandler unilink::wrapper::TcpServer::Impl::on_data_ {nullptr}

Definition at line 62 of file tcp_server.cc.

◆ on_error_

ErrorHandler unilink::wrapper::TcpServer::Impl::on_error_ {nullptr}

Definition at line 63 of file tcp_server.cc.

◆ pending_promises_

std::vector<std::promise<bool> > unilink::wrapper::TcpServer::Impl::pending_promises_

Definition at line 46 of file tcp_server.cc.

◆ port_

uint16_t unilink::wrapper::TcpServer::Impl::port_

Definition at line 38 of file tcp_server.cc.

◆ port_retry_enabled_

bool unilink::wrapper::TcpServer::Impl::port_retry_enabled_ {false}

Definition at line 52 of file tcp_server.cc.

◆ port_retry_interval_ms_

int unilink::wrapper::TcpServer::Impl::port_retry_interval_ms_ {1000}

Definition at line 54 of file tcp_server.cc.

◆ started_

bool unilink::wrapper::TcpServer::Impl::started_ {false}

Definition at line 47 of file tcp_server.cc.

◆ use_external_context_

bool unilink::wrapper::TcpServer::Impl::use_external_context_ {false}

Definition at line 41 of file tcp_server.cc.

◆ work_guard_

std::unique_ptr<boost::asio::executor_work_guard<boost::asio::io_context::executor_type> > unilink::wrapper::TcpServer::Impl::work_guard_

Definition at line 44 of file tcp_server.cc.


The documentation for this struct was generated from the following file: