Diag-Client-Lib
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
boost_support::socket::tcp::CreateTcpServerSocket Class Reference

#include <tcp_server.h>

Classes

class  TcpServerConnection
 

Public Types

using TcpHandlerRead = std::function< void(TcpMessagePtr)>
 
using TcpAccepter = boost::asio::ip::tcp::acceptor
 

Public Member Functions

 CreateTcpServerSocket (std::string_view local_ip_address, uint16_t local_port_num)
 
 ~CreateTcpServerSocket ()=default
 
TcpServerConnection GetTcpServerConnection (TcpHandlerRead &&tcp_handler_read)
 

Private Attributes

std::string local_ip_address_
 
uint16_t local_port_num_
 
std::unique_ptr< TcpAcceptertcp_accepter_
 
boost::asio::io_context io_context_
 

Detailed Description

Definition at line 25 of file tcp_server.h.

Member Typedef Documentation

◆ TcpAccepter

Definition at line 71 of file tcp_server.h.

◆ TcpHandlerRead

Definition at line 28 of file tcp_server.h.

Constructor & Destructor Documentation

◆ CreateTcpServerSocket()

boost_support::socket::tcp::CreateTcpServerSocket::CreateTcpServerSocket ( std::string_view  local_ip_address,
uint16_t  local_port_num 
)

Definition at line 19 of file tcp_server.cpp.

20  : local_ip_address_{local_ip_address},
21  local_port_num_{local_port_num} {
22  // Create accepter
23  tcp_accepter_ = std::make_unique<TcpAccepter>(io_context_, Tcp::endpoint(Tcp::v4(), local_port_num_), true);
25  __FILE__, __LINE__, __func__, [&local_ip_address, &local_port_num](std::stringstream &msg) {
26  msg << "Tcp Socket Accepter created at "
27  << "<" << local_ip_address << "," << local_port_num << ">";
28  });
29 }
static auto GetLibBoostLogger() noexcept -> LibBoostLogger &
Definition: logger.h:20
std::unique_ptr< TcpAccepter > tcp_accepter_
Definition: tcp_server.h:88

References boost_support::common::logger::LibBoostLogger::GetLibBoostLogger(), io_context_, local_port_num_, and tcp_accepter_.

Here is the call graph for this function:

◆ ~CreateTcpServerSocket()

boost_support::socket::tcp::CreateTcpServerSocket::~CreateTcpServerSocket ( )
default

Member Function Documentation

◆ GetTcpServerConnection()

CreateTcpServerSocket::TcpServerConnection boost_support::socket::tcp::CreateTcpServerSocket::GetTcpServerConnection ( TcpHandlerRead &&  tcp_handler_read)

Definition at line 31 of file tcp_server.cpp.

32  {
34  Tcp::endpoint endpoint{};
35  CreateTcpServerSocket::TcpServerConnection tcp_connection{io_context_, std::move(tcp_handler_read)};
36 
37  // blocking accept
38  static_cast<void>(tcp_accepter_->accept(tcp_connection.GetSocket(), endpoint, ec));
39  if (ec.value() == boost::system::errc::success) {
41  __FILE__, __LINE__, __func__, [endpoint](std::stringstream &msg) {
42  msg << "Tcp Socket connection received from client "
43  << "<" << endpoint.address().to_string() << "," << endpoint.port() << ">";
44  });
45  } else {
47  __FILE__, __LINE__, __func__,
48  [ec](std::stringstream &msg) { msg << "Tcp Socket Connect to client failed with error: " << ec.message(); });
49  }
50  return tcp_connection;
51 }
boost::system::error_code TcpErrorCodeType
Definition: tcp_server.cpp:17

References boost_support::common::logger::LibBoostLogger::GetLibBoostLogger(), io_context_, and tcp_accepter_.

Here is the call graph for this function:

Member Data Documentation

◆ io_context_

boost::asio::io_context boost_support::socket::tcp::CreateTcpServerSocket::io_context_
private

Definition at line 90 of file tcp_server.h.

Referenced by CreateTcpServerSocket(), and GetTcpServerConnection().

◆ local_ip_address_

std::string boost_support::socket::tcp::CreateTcpServerSocket::local_ip_address_
private

Definition at line 84 of file tcp_server.h.

◆ local_port_num_

uint16_t boost_support::socket::tcp::CreateTcpServerSocket::local_port_num_
private

Definition at line 86 of file tcp_server.h.

Referenced by CreateTcpServerSocket().

◆ tcp_accepter_

std::unique_ptr<TcpAccepter> boost_support::socket::tcp::CreateTcpServerSocket::tcp_accepter_
private

Definition at line 88 of file tcp_server.h.

Referenced by CreateTcpServerSocket(), and GetTcpServerConnection().


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