template<class Handler, class Stream, class MutableBufferSequence, class Allocator = std::allocator<void>>
class Botan::TLS::detail::AsyncReadOperation< Handler, Stream, MutableBufferSequence, Allocator >
Definition at line 111 of file asio_async_ops.h.
template<class Handler, class Stream, class MutableBufferSequence, class Allocator = std::allocator<void>>
Definition at line 139 of file asio_async_ops.h.
References Botan::TLS::detail::AsyncBase< Handler, Stream::executor_type, Allocator >::complete_now(), Botan::TLS::Stream< StreamLayer, ChannelT >::copy_received_data(), Botan::Exception::error_type(), Botan::TLS::Stream< StreamLayer, ChannelT >::has_received_data(), Botan::TLS::Stream< StreamLayer, ChannelT >::input_buffer(), Botan::TLS::Stream< StreamLayer, ChannelT >::native_handle(), Botan::TLS::Stream< StreamLayer, ChannelT >::next_layer(), Botan::TLS::TLS_Exception::type(), and Botan::Unknown.
143 if(bytes_transferred > 0 && !ec)
146 boost::asio::const_buffer read_buffer{m_stream.
input_buffer().data(), bytes_transferred};
150 static_cast<const uint8_t*>(read_buffer.data()), read_buffer.size()
153 catch(
const TLS_Exception& e)
167 if(!m_stream.
has_received_data() && !ec && boost::asio::buffer_size(m_buffers) > 0)
185 yield m_stream.
next_layer().async_read_some(boost::asio::mutable_buffer(), std::move(*
this));
const next_layer_type & next_layer() const
virtual ErrorType error_type() const noexcept
const boost::asio::mutable_buffer & input_buffer()
std::size_t copy_received_data(MutableBufferSequence buffers)
Copy decrypted data into the user-provided buffer.
native_handle_type native_handle()
bool has_received_data() const
Check if decrypted data is available in the receive buffer.
void complete_now(Args &&...args)