...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Read some message data.
template< class MutableBufferSequence> std::size_t read_some( MutableBufferSequence const& buffers, error_code& ec);
This function is used to read some message data. The call blocks until one of the following is true:
error::closed
.
The algorithm, known as a composed operation, is
implemented in terms of calls to the next layer's read_some
and write_some
functions.
The functions got_binary
and got_text
may be used to query
the stream and determine the type of the last received message. The function
is_message_done
may be called
to determine if the message received by the last read operation is complete.
Until the call returns, the implementation will read incoming control
frames and handle them automatically as follows:
control_callback
will be
invoked for each control frame.
error::closed
will be indicated.
The number of message payload bytes appended to the buffer.
Name |
Description |
---|---|
|
A buffer sequence to write message data into. The previous contents of the buffers will be overwritten, starting from the beginning. |
|
Set to indicate what error occurred, if any. |
This asynchronous operation supports cancellation for the following net::cancellation_type values:
net::cancellation_type::terminal
net::cancellation_type::total
total
cancellation succeeds
if the operation is suspended due to ongoing control operations such
as a ping/pong. terminal
cancellation succeeds when supported by the underlying stream. terminal
cancellation leaves the stream
in an undefined state, so that only closing it is guaranteed to succeed.