< cpp‎ | io‎ | basic syncbuf
Public member functions
Protected member functions
Non-member functions
bool emit();

Atomically transmits all pending output to the wrapped stream.

All emit() calls transferring characters to the same wrapped stream buffer object appear to execute in a total order, where each emit() call synchronizes-with subsequent emit() calls in that total order, even if these calls are made through difference instances of std::basic_syncbuf/std::basic_osyncstream. In practice, this means that emit() takes a lock uniquely associated with the wrapped stream object: for example, it could be held in a static hash map where the address of the wrapped stream is used as the key.

If a call had been made to sync since the last call to emit(), then also flushes the wrapped stream by calling pubsync() on it.


[edit] Parameters


[edit] Return value

true if all of the following is true:

  • there is a wrapped stream (the wrapped streambuf pointer is not null)
  • all characters from the temporary storage were successfully sent into the wrapped stream
  • the call to pubsync(), if requested, also completed successfully.

Returns false otherwise.

[edit] Notes

Normally called by the destructor or move assignment of the owning std::basic_osyncstream, or by std::basic_osyncstream::emit.

[edit] Example

[edit] See also

destroys the basic_osyncstream and emits its internal buffer
(public member function of std::basic_osyncstream<CharT,Traits,Allocator>) [edit]
calls emit() on the underlying basic_syncbuf to transmit its internal data to the final destination
(public member function of std::basic_osyncstream<CharT,Traits,Allocator>) [edit]
constructs a basic_syncbuf object
(public member function) [edit]