Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | io‎ | basic syncbuf
 
 
 
std::basic_syncbuf
Public member functions
basic_syncbuf::emit
(C++20)
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.

Contents

[edit] Parameters

(none)

[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 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]