unilink  0.4.3
A simple C++ library for unified async communication
unilink::transport::TcpClient Class Reference

#include <tcp_client.hpp>

Inheritance diagram for unilink::transport::TcpClient:
unilink::interface::Channel

Classes

struct  Impl
 

Public Types

using BufferVariant = std::variant< memory::PooledBuffer, std::vector< uint8_t >, std::shared_ptr< const std::vector< uint8_t > >>
 

Public Member Functions

 ~TcpClient ()
 
 TcpClient (TcpClient &&) noexcept
 
TcpClientoperator= (TcpClient &&) noexcept
 
 TcpClient (const TcpClient &)=delete
 
TcpClientoperator= (const TcpClient &)=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
 
std::optional< diagnostics::ErrorInfolast_error_info () const
 
void set_retry_interval (unsigned interval_ms)
 
void set_reconnect_policy (ReconnectPolicy policy)
 

Static Public Member Functions

static std::shared_ptr< TcpClientcreate (const TcpClientConfig &cfg)
 
static std::shared_ptr< TcpClientcreate (const TcpClientConfig &cfg, boost::asio::io_context &ioc)
 

Detailed Description

Definition at line 49 of file tcp_client.hpp.

Member Typedef Documentation

◆ BufferVariant

using unilink::transport::TcpClient::BufferVariant = std::variant<memory::PooledBuffer, std::vector<uint8_t>, std::shared_ptr<const std::vector<uint8_t> >>

Definition at line 51 of file tcp_client.hpp.

Constructor & Destructor Documentation

◆ ~TcpClient()

unilink::transport::TcpClient::~TcpClient ( )

Definition at line 163 of file tcp_client.cc.

◆ TcpClient() [1/2]

unilink::transport::TcpClient::TcpClient ( TcpClient &&  )
defaultnoexcept

◆ TcpClient() [2/2]

unilink::transport::TcpClient::TcpClient ( const TcpClient )
delete

Member Function Documentation

◆ async_write_copy()

void unilink::transport::TcpClient::async_write_copy ( memory::ConstByteSpan  data)
overridevirtual

Implements unilink::interface::Channel.

Definition at line 259 of file tcp_client.cc.

◆ async_write_move()

void unilink::transport::TcpClient::async_write_move ( std::vector< uint8_t > &&  data)
overridevirtual

Implements unilink::interface::Channel.

Definition at line 349 of file tcp_client.cc.

◆ async_write_shared()

void unilink::transport::TcpClient::async_write_shared ( std::shared_ptr< const std::vector< uint8_t >>  data)
overridevirtual

Implements unilink::interface::Channel.

Definition at line 395 of file tcp_client.cc.

◆ create() [1/2]

std::shared_ptr< TcpClient > unilink::transport::TcpClient::create ( const TcpClientConfig cfg)
static

Definition at line 151 of file tcp_client.cc.

◆ create() [2/2]

std::shared_ptr< TcpClient > unilink::transport::TcpClient::create ( const TcpClientConfig cfg,
boost::asio::io_context &  ioc 
)
static

Definition at line 155 of file tcp_client.cc.

◆ is_connected()

bool unilink::transport::TcpClient::is_connected ( ) const
overridevirtual

Implements unilink::interface::Channel.

Definition at line 257 of file tcp_client.cc.

◆ last_error_info()

std::optional< diagnostics::ErrorInfo > unilink::transport::TcpClient::last_error_info ( ) const

Definition at line 175 of file tcp_client.cc.

◆ on_backpressure()

void unilink::transport::TcpClient::on_backpressure ( OnBackpressure  cb)
overridevirtual

Implements unilink::interface::Channel.

Definition at line 449 of file tcp_client.cc.

◆ on_bytes()

void unilink::transport::TcpClient::on_bytes ( OnBytes  cb)
overridevirtual

Implements unilink::interface::Channel.

Definition at line 441 of file tcp_client.cc.

◆ on_state()

void unilink::transport::TcpClient::on_state ( OnState  cb)
overridevirtual

Implements unilink::interface::Channel.

Definition at line 445 of file tcp_client.cc.

◆ operator=() [1/2]

TcpClient& unilink::transport::TcpClient::operator= ( const TcpClient )
delete

◆ operator=() [2/2]

TcpClient & unilink::transport::TcpClient::operator= ( TcpClient &&  )
defaultnoexcept

◆ set_reconnect_policy()

void unilink::transport::TcpClient::set_reconnect_policy ( ReconnectPolicy  policy)

Definition at line 454 of file tcp_client.cc.

◆ set_retry_interval()

void unilink::transport::TcpClient::set_retry_interval ( unsigned  interval_ms)

Definition at line 453 of file tcp_client.cc.

◆ start()

void unilink::transport::TcpClient::start ( )
overridevirtual

Implements unilink::interface::Channel.

Definition at line 180 of file tcp_client.cc.

◆ stop()

void unilink::transport::TcpClient::stop ( )
overridevirtual

Implements unilink::interface::Channel.

Definition at line 238 of file tcp_client.cc.


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