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_osyncstreamstd::basic_osyncstream::emit 所调用。

示例

参阅

销毁 basic_osyncstream 并发射其内部缓冲区
(std::basic_osyncstream<CharT,Traits,Allocator> 的公开成员函数)
调用底层 basic_syncbuf 上的 emit 以传输其内部数据到最终目标
(std::basic_osyncstream<CharT,Traits,Allocator> 的公开成员函数)
构造 basic_syncbuf 对象
(公开成员函数)