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

Public Member Functions

 Impl (const std::string &host, uint16_t port)
 
 Impl (const std::string &host, 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 send (std::string_view data)
 
bool is_connected () const
 
void setup_internal_handlers ()
 

Public Attributes

std::mutex mutex_
 
std::string host_
 
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_
 
std::atomic< bool > started_ {false}
 
std::shared_ptr< bool > alive_marker_ {std::make_shared<bool>(true)}
 
MessageHandler data_handler_ {nullptr}
 
ConnectionHandler connect_handler_ {nullptr}
 
ConnectionHandler disconnect_handler_ {nullptr}
 
ErrorHandler error_handler_ {nullptr}
 
bool auto_manage_ = false
 
std::chrono::milliseconds retry_interval_ {3000}
 
int max_retries_ = -1
 
std::chrono::milliseconds connection_timeout_ {5000}
 

Detailed Description

Definition at line 37 of file tcp_client.cc.

Constructor & Destructor Documentation

◆ Impl() [1/3]

unilink::wrapper::TcpClient::Impl::Impl ( const std::string &  host,
uint16_t  port 
)
inline

Definition at line 62 of file tcp_client.cc.

◆ Impl() [2/3]

unilink::wrapper::TcpClient::Impl::Impl ( const std::string &  host,
uint16_t  port,
std::shared_ptr< boost::asio::io_context >  external_ioc 
)
inline

Definition at line 64 of file tcp_client.cc.

◆ Impl() [3/3]

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

Definition at line 72 of file tcp_client.cc.

◆ ~Impl()

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

Definition at line 77 of file tcp_client.cc.

Member Function Documentation

◆ fulfill_all()

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

Definition at line 84 of file tcp_client.cc.

◆ is_connected()

bool unilink::wrapper::TcpClient::Impl::is_connected ( ) const
inline

Definition at line 186 of file tcp_client.cc.

◆ send()

void unilink::wrapper::TcpClient::Impl::send ( std::string_view  data)
inline

Definition at line 179 of file tcp_client.cc.

◆ setup_internal_handlers()

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

Definition at line 188 of file tcp_client.cc.

◆ start()

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

Definition at line 95 of file tcp_client.cc.

◆ stop()

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

Definition at line 136 of file tcp_client.cc.

Member Data Documentation

◆ alive_marker_

std::shared_ptr<bool> unilink::wrapper::TcpClient::Impl::alive_marker_ {std::make_shared<bool>(true)}

Definition at line 50 of file tcp_client.cc.

◆ auto_manage_

bool unilink::wrapper::TcpClient::Impl::auto_manage_ = false

Definition at line 57 of file tcp_client.cc.

◆ channel_

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

Definition at line 41 of file tcp_client.cc.

◆ connect_handler_

ConnectionHandler unilink::wrapper::TcpClient::Impl::connect_handler_ {nullptr}

Definition at line 53 of file tcp_client.cc.

◆ connection_timeout_

std::chrono::milliseconds unilink::wrapper::TcpClient::Impl::connection_timeout_ {5000}

Definition at line 60 of file tcp_client.cc.

◆ data_handler_

MessageHandler unilink::wrapper::TcpClient::Impl::data_handler_ {nullptr}

Definition at line 52 of file tcp_client.cc.

◆ disconnect_handler_

ConnectionHandler unilink::wrapper::TcpClient::Impl::disconnect_handler_ {nullptr}

Definition at line 54 of file tcp_client.cc.

◆ error_handler_

ErrorHandler unilink::wrapper::TcpClient::Impl::error_handler_ {nullptr}

Definition at line 55 of file tcp_client.cc.

◆ external_ioc_

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

Definition at line 42 of file tcp_client.cc.

◆ external_thread_

std::thread unilink::wrapper::TcpClient::Impl::external_thread_

Definition at line 45 of file tcp_client.cc.

◆ host_

std::string unilink::wrapper::TcpClient::Impl::host_

Definition at line 39 of file tcp_client.cc.

◆ manage_external_context_

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

Definition at line 44 of file tcp_client.cc.

◆ max_retries_

int unilink::wrapper::TcpClient::Impl::max_retries_ = -1

Definition at line 59 of file tcp_client.cc.

◆ mutex_

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

Definition at line 38 of file tcp_client.cc.

◆ pending_promises_

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

Definition at line 48 of file tcp_client.cc.

◆ port_

uint16_t unilink::wrapper::TcpClient::Impl::port_

Definition at line 40 of file tcp_client.cc.

◆ retry_interval_

std::chrono::milliseconds unilink::wrapper::TcpClient::Impl::retry_interval_ {3000}

Definition at line 58 of file tcp_client.cc.

◆ started_

std::atomic<bool> unilink::wrapper::TcpClient::Impl::started_ {false}

Definition at line 49 of file tcp_client.cc.

◆ use_external_context_

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

Definition at line 43 of file tcp_client.cc.

◆ work_guard_

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

Definition at line 46 of file tcp_client.cc.


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