命名空间
变体
操作

std::basic_syncbuf<CharT,Traits,Allocator>::emit

来自 cppreference.com
< 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 对象
(公有成员函数) [编辑]