std::basic_syncbuf<CharT,Traits,Allocator>::emit
来自 cppreference.cn
< cpp | io | basic syncbuf
bool emit(); |
||
原子性地将所有待处理的输出传输到包装的流。
所有 emit() 调用,将字符传输到同一包装的流缓冲区对象,都以总顺序执行,其中每个 emit() 调用 同步于 该总顺序中的后续 emit() 调用,即使这些调用是通过 std::basic_syncbuf/std::basic_osyncstream 的不同实例进行的。实际上,这意味着 emit() 获取与包装的流对象唯一关联的锁:例如,它可以保存在静态哈希映射中,其中包装的流的地址用作键。
如果在上次调用 emit() 之后调用了 sync,则还会通过在其上调用 pubsync() 来刷新包装的流。
目录 |
[编辑] 参数
(无)
[编辑] 返回值
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 对象(公共成员函数) |