In the table below, a denotes
an asynchronous read stream object, mb
denotes an object satisfying mutable
buffer sequence requirements, and h
denotes an object satisfying read
handler requirements.
Table 1. Buffer-oriented asynchronous read stream requirements
|
operation
|
type
|
semantics, pre/post-conditions
|
|
a.io_service();
|
io_service&
|
Returns the io_service
object through which the async_read_some
handler h will be invoked.
|
|
a.async_read_some(mb, h);
|
void
|
Initiates an asynchronous operation to read one or more bytes of data
from the stream a.
The operation is performed via the io_service
object a.io_service()
and behaves according to asynchronous
operation requirements. The mutable buffer sequence
mb specifies memory
where the data should be placed. The async_read_some
operation shall always fill a buffer in the sequence completely before
proceeding to the next. The implementation shall maintain
one or more copies of mb
until such time as the read operation no longer requires access to
the memory specified by the buffers in the sequence. The program must
ensure the memory is valid until: — the last copy of mb is destroyed, or
— the handler for the asynchronous read operation is invoked,
whichever comes first. If the total size of all
buffers in the sequence mb
is 0, the asynchronous
read operation shall complete immediately and pass 0
as the argument to the handler that specifies the number of bytes read.
|