如果类型 X 满足下面列出的要求,则它满足 AsyncReadStream 要求。
在下表中,a 表示类型为 X 的值,mb 表示满足 MutableBufferSequence 要求的(可能是 const 的)值,而 t 是一个完成令牌。
表 6. AsyncReadStream 要求
|
操作
|
type
|
语义、前/后置条件
|
|
a.get_executor()
|
满足 Executor 要求的类型。
|
返回关联的 I/O 执行器。
|
|
a.async_read_some(mb,t)
|
返回类型根据 异步操作的要求确定。
|
满足 读取操作和具有完成签名 void(error_code ec, size_t n) 的 异步操作的要求。 如果 buffer_size(mb) > 0,则启动一个异步操作,将数据从流 a 中读取一个或多个字节到缓冲区序列 mb 中。如果成功,ec 将被设置为 !ec 为 true,而 n 是读取的字节数。如果发生错误,ec 将被设置为 !!ec 为 true,而 n 为 0。如果已从流中读取了所有数据,并且流已正常关闭,则 ec 为 stream_errc::eof,而 n 为 0。
如果 buffer_size(mb) == 0,则操作立即完成。ec 将被设置为 !ec 为 true,而 n 为 0。
|