13#if !defined(RESTINIO_USE_BOOST_ASIO)
14 #include <asio/ssl.hpp>
16 #include <boost/asio/ssl.hpp>
39 using socket_t = asio_ns::ssl::stream< asio_ns::ip::tcp::socket >;
42#if RESTINIO_ASIO_VERSION >= 101600
49 asio_ns::io_context & io_context,
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 )... );
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
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)
void swap(optional< T > &x, optional< T > &y)
asio_ns::executor default_asio_executor