std::basic_syncbuf<CharT,Traits,Allocator>::emit
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
This section is incomplete Reason: no example |
[edit] See also
destroys the basic_osyncstream and emits its internal buffer (public member function of std::basic_osyncstream<CharT,Traits,Allocator> )
| |
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> )
| |
constructs a basic_syncbuf object (public member function) |