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

#include <tcp_server_session.hpp>

Inheritance diagram for unilink::transport::TcpServerSession:

Public Types

using OnBytes = interface::Channel::OnBytes
 
using OnBackpressure = interface::Channel::OnBackpressure
 
using OnClose = std::function< void()>
 
using BufferVariant = std::variant< memory::PooledBuffer, std::vector< uint8_t >, std::shared_ptr< const std::vector< uint8_t > >>
 

Public Member Functions

 TcpServerSession (net::io_context &ioc, tcp::socket sock, size_t backpressure_threshold=common::constants::DEFAULT_BACKPRESSURE_THRESHOLD, int idle_timeout_ms=0)
 
 TcpServerSession (net::io_context &ioc, std::unique_ptr< interface::TcpSocketInterface > socket, size_t backpressure_threshold=common::constants::DEFAULT_BACKPRESSURE_THRESHOLD, int idle_timeout_ms=0)
 
void start ()
 
void async_write_copy (memory::ConstByteSpan data)
 
void async_write_move (std::vector< uint8_t > &&data)
 
void async_write_shared (std::shared_ptr< const std::vector< uint8_t >> data)
 
void on_bytes (OnBytes cb)
 
void on_backpressure (OnBackpressure cb)
 
void on_close (OnClose cb)
 
bool alive () const
 
void stop ()
 
void cancel ()
 

Detailed Description

Definition at line 49 of file tcp_server_session.hpp.

Member Typedef Documentation

◆ BufferVariant

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

Definition at line 54 of file tcp_server_session.hpp.

◆ OnBackpressure

◆ OnBytes

◆ OnClose

using unilink::transport::TcpServerSession::OnClose = std::function<void()>

Definition at line 53 of file tcp_server_session.hpp.

Constructor & Destructor Documentation

◆ TcpServerSession() [1/2]

unilink::transport::TcpServerSession::TcpServerSession ( net::io_context &  ioc,
tcp::socket  sock,
size_t  backpressure_threshold = common::constants::DEFAULT_BACKPRESSURE_THRESHOLD,
int  idle_timeout_ms = 0 
)

Definition at line 30 of file tcp_server_session.cc.

◆ TcpServerSession() [2/2]

unilink::transport::TcpServerSession::TcpServerSession ( net::io_context &  ioc,
std::unique_ptr< interface::TcpSocketInterface socket,
size_t  backpressure_threshold = common::constants::DEFAULT_BACKPRESSURE_THRESHOLD,
int  idle_timeout_ms = 0 
)

Definition at line 48 of file tcp_server_session.cc.

Member Function Documentation

◆ alive()

bool unilink::transport::TcpServerSession::alive ( ) const

Definition at line 192 of file tcp_server_session.cc.

◆ async_write_copy()

void unilink::transport::TcpServerSession::async_write_copy ( memory::ConstByteSpan  data)

Definition at line 75 of file tcp_server_session.cc.

◆ async_write_move()

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

Definition at line 126 of file tcp_server_session.cc.

◆ async_write_shared()

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

Definition at line 148 of file tcp_server_session.cc.

◆ cancel()

void unilink::transport::TcpServerSession::cancel ( )

Definition at line 207 of file tcp_server_session.cc.

◆ on_backpressure()

void unilink::transport::TcpServerSession::on_backpressure ( OnBackpressure  cb)

Definition at line 177 of file tcp_server_session.cc.

◆ on_bytes()

void unilink::transport::TcpServerSession::on_bytes ( OnBytes  cb)

Definition at line 170 of file tcp_server_session.cc.

◆ on_close()

void unilink::transport::TcpServerSession::on_close ( OnClose  cb)

Definition at line 184 of file tcp_server_session.cc.

◆ start()

void unilink::transport::TcpServerSession::start ( )

Definition at line 66 of file tcp_server_session.cc.

◆ stop()

void unilink::transport::TcpServerSession::stop ( )

Definition at line 194 of file tcp_server_session.cc.


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