8 #ifndef DIAG_CLIENT_LIB_LIB_BOOST_SUPPORT_SOCKET_TCP_TLS_SERVER_H_
9 #define DIAG_CLIENT_LIB_LIB_BOOST_SUPPORT_SOCKET_TCP_TLS_SERVER_H_
12 #include <boost/asio.hpp>
13 #include <boost/asio/ssl.hpp>
15 #include <string_view>
43 using Tcp = boost::asio::ip::tcp;
53 using TlsStream = boost::asio::ssl::stream<TcpSocket>;
141 TlsServerSocket(std::string_view local_ip_address, std::uint16_t local_port_num);
153 std::optional<TcpServerConnection> GetTcpServerConnection(
TcpHandlerRead tcp_handler_read);
159 using Tcp = boost::asio::ip::tcp;
Tcp Server connection class to create connection with client.
~TcpServerConnection()=default
Destruct an instance of TcpServerConnection.
TcpErrorCode
Tcp error code.
TcpServerConnection(TcpServerConnection &&) noexcept=default
Default move ctor and assignment operator.
boost::asio::ssl::stream< TcpSocket > TlsStream
Type alias for tls stream wrapping tcp socket.
boost::asio::ip::tcp Tcp
Type alias for tcp protocol.
core_type::Result< void, TcpErrorCode > Shutdown()
Function to shutdown the socket.
TcpServerConnection(TlsStream tls_socket, TcpHandlerRead tcp_handler_read)
Constructs an instance of TcpServerConnection.
std::function< void(message::tcp::TcpMessagePtr)> TcpHandlerRead
Tcp function template used for reception.
Tcp::socket TcpSocket
Type alias for tcp socket.
TlsStream::lowest_layer_type & GetNativeTcpSocket()
Function to get the native tcp socket under tls socket.
TcpHandlerRead tcp_handler_read_
Store the handler.
core_type::Result< void, TcpErrorCode > Transmit(message::tcp::TcpMessageConstPtr tcp_message)
Function to trigger transmission.
TlsStream tls_socket_
Store ssl socket.
bool TryReceivingMessage()
Function to initiate reception of tcp message.
Class used to create a tls socket for server for handling transmission and reception of tcp message f...
boost::asio::ssl::context io_ssl_context_
boost io ssl context
TcpAcceptor tcp_acceptor_
Store tcp acceptor.
~TlsServerSocket()=default
Destruct an instance of TlsServerSocket.
boost::asio::ip::tcp::acceptor TcpAcceptor
Type alias for tcp acceptor.
boost::asio::ip::tcp Tcp
Type alias for tcp protocol.
std::uint16_t local_port_num_
Store local port number.
boost::asio::io_context io_context_
boost io context
std::function< void(message::tcp::TcpMessagePtr)> TcpHandlerRead
Tcp function template used for reception.
std::string local_ip_address_
Store local ip address.
std::unique_ptr< TcpMessage > TcpMessagePtr
The unique pointer to TcpMessage.
std::unique_ptr< TcpMessage const > TcpMessageConstPtr
The unique pointer to const TcpMessage.
core_type::Result< T, E > Result
Class type to contains a value (of type ValueType), or an error (of type ErrorType)