2
3
6
7
11#include <restinio/asio_include.hpp>
13#if !defined(RESTINIO_USE_BOOST_ASIO)
14 #include <asio/ssl.hpp>
16 #include <boost/asio/ssl.hpp>
31
32
33
34
35
39 using socket_t = asio_ns::ssl::stream< asio_ns::ip::tcp::socket >;
43 using executor_type = default_asio_executor;
49 asio_ns::io_context & io_context,
61 std::swap( m_context, sock.m_context );
62 std::swap( m_socket, sock.m_socket );
68 return m_socket->lowest_layer();
74 return m_socket->lowest_layer();
78
79
80
81
82
83
84
85
93
94
95
96
97
98
99
100
110 return this->lowest_layer().get_executor();
116 return this->lowest_layer().remote_endpoint();
122 return this->lowest_layer().is_open();
125 template<
typename... Args >
129 this->lowest_layer().cancel( std::forward< Args >( args )... );
132 template<
typename... Args >
136 return m_socket->async_read_some( std::forward< Args >( args )... );
139 template<
typename... Args >
143 return m_socket->async_write_some( std::forward< Args >( args )... );
146 template<
typename... Args >
150 this->lowest_layer().shutdown( std::forward< Args >( args )... );
153 template<
typename... Args >
157 this->lowest_layer().close( std::forward< Args >( args )... );
160 template<
typename... Args >
164 return m_socket->async_handshake( std::forward< Args >( args )... );
#define RESTINIO_ASIO_VERSION
Socket adapter for asio::ssl::stream< asio::ip::tcp::socket >.
std::unique_ptr< socket_t > m_socket
tls_socket_t(tls_socket_t &&)=default
auto async_write_some(Args &&... args)
tls_socket_t(const tls_socket_t &)=delete
void shutdown(Args &&... args)
const socket_t & asio_ssl_stream() const
Get an access to underlying Asio's socket.
asio_ns::ssl::stream< asio_ns::ip::tcp::socket > socket_t
tls_socket_t(asio_ns::io_context &io_context, context_handle_t tls_context)
tls_socket_t & operator=(const tls_socket_t &)=delete
tls_socket_t & operator=(tls_socket_t &&)=default
auto async_read_some(Args &&... args)
auto remote_endpoint() const
context_handle_t m_context
auto async_handshake(Args &&... args)
std::shared_ptr< asio_ns::ssl::context > context_handle_t
void cancel(Args &&... args)
socket_t & asio_ssl_stream()
Get an access to underlying Asio's socket.
void close(Args &&... args)
const auto & lowest_layer() const
void swap(tls_socket_t &sock)