std::basic_syncbuf<CharT,Traits,Allocator>::emit
来自 cppreference.cn
< cpp | io | basic syncbuf
bool emit(); |
||
原子地将所有待处理的输出传输到被包装的流。
所有将字符传输到同一被包装流缓冲对象的 emit() 调用,表现为以一个总序执行,其中每个 emit() 调用与该总序中的后续 emit() 调用同步于(synchronizes-with),即使这些调用是通过 std::basic_syncbuf/std::basic_osyncstream 的不同实例进行的。实践中,这意味着 emit() 获取一个与被包装流对象唯一关联的锁:例如,该锁可以保存在一个静态哈希表中,其中被包装流的地址被用作键。
如果自上次调用 emit() 以来,曾调用过 sync,那么还会通过在其上调用 pubsync() 来冲洗被包装的流。
目录 |
[编辑] 参数
(无)
[编辑] 返回值
若以下所有条件均为 true,则返回 true
- 存在一个被包装的流(被包装的 streambuf 指针不为空)
- 临时存储中的所有字符都成功发送到被包装的流中
- 对 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 对象(公开成员函数) |