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::TLS::Stream< StreamLayer, ChannelT >::has_received_data(), Botan::TLS::Stream< StreamLayer, ChannelT >::input_buffer(), Botan::TLS::Stream< StreamLayer, ChannelT >::next_layer(), Botan::TLS::Stream< StreamLayer, ChannelT >::process_encrypted_data(), Botan::TLS::Stream< StreamLayer, ChannelT >::shutdown_received(), and Botan::TLS::StreamTruncated.
143 if(bytes_transferred > 0 && !ec)
146 boost::asio::const_buffer read_buffer{m_stream.
input_buffer().data(), bytes_transferred};
153 ec = boost::asio::error::eof;
155 else if (ec == boost::asio::error::eof)
161 if(!m_stream.
has_received_data() && !ec && boost::asio::buffer_size(m_buffers) > 0)
179 yield m_stream.
next_layer().async_read_some(boost::asio::mutable_buffer(), std::move(*
this));
const next_layer_type & next_layer() const
void process_encrypted_data(const boost::asio::const_buffer &read_buffer, boost::system::error_code &ec)
Pass encrypted data to the native handle for processing.
const boost::asio::mutable_buffer & input_buffer()
std::size_t copy_received_data(MutableBufferSequence buffers)
Copy decrypted data into the user-provided buffer.
bool shutdown_received() const
Indicates whether a close_notify alert has been received from the peer.
bool has_received_data() const
Check if decrypted data is available in the receive buffer.
void complete_now(Args &&...args)