std::basic_syncbuf<CharT,Traits,Allocator>::emit
< cpp | io | basic syncbuf
bool emit(); |
||
原子地传输所有待决输出到被包装流。
所有传输字符到同一被包装流缓冲对象的 emit() 调用以单独全序出现,在该全序中,每个 emit() 调用同步于后继的 emit() 调用,即使这些调用通过不同的 std::basic_syncbuf/std::basic_osyncstream 实例进行。实践中,这表示 emit() 采用与被包装流对象唯一关联的锁:例如,能在一个静态哈希映射中保有锁,其中将被包装流的地址用作关键。
若最近对 emit() 的调用导致调用了 sync ,则它会调用其上的 pubsync() 冲入被包装流。
参数
(无)
返回值
若以下均为真则返回 true :
- 有被包装流(被包装的流缓冲指针非空)
- 已成功将所有字符从临时存储发送到被包装流
- 若请求调用 pubsync() ,则它亦成功完成。
否则返回 false 。
注意
通常为占有流缓冲的 std::basic_osyncstream 或 std::basic_osyncstream::emit 所调用。
示例
本节未完成 原因:暂无示例 |
参阅
销毁 basic_osyncstream 并发射其内部缓冲区 ( std::basic_osyncstream<CharT,Traits,Allocator> 的公开成员函数) | |
调用底层 basic_syncbuf 上的 emit 以传输其内部数据到最终目标 ( std::basic_osyncstream<CharT,Traits,Allocator> 的公开成员函数) | |
构造 basic_syncbuf 对象 (公开成员函数) |