Boost C++ 库

...世界上最受推崇和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

面向缓冲区的同步读取流要求

如果类型 X 满足以下列出的要求,则符合 SyncReadStream 要求。

在下表中,a 表示类型 X 的值,mb 表示满足 MutableBufferSequence 要求的(可能是 const)值,而 ec 表示 error_code 类型的对象。

表 32. SyncReadStream 要求

操作

类型

语义,前置/后置条件

a.read_some(mb)
a.read_some(mb,ec)

size_t

满足读取操作的要求。

如果 buffer_size(mb) > 0,则从流 a 中读取一个或多个字节的数据到缓冲区序列 mb 中。如果成功,则设置 ec,使得 !ectrue,并返回读取的字节数。如果发生错误,则设置 ec,使得 !!ectrue,并返回 0。如果已从流中读取所有数据,并且流执行了有序关闭,则将 ec 设置为 stream_errc::eof 并返回 0。

如果 buffer_size(mb) == 0,则操作不应阻塞。设置 ec,使得 !ectrue,并返回 0。



PrevUpHomeNext