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.
Parameters
(none).
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.
Notes
Normally called by the destructor of the owning std::basic_osyncstream
or by std::basic_osyncstream::emit
.
Example
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) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/io/basic_syncbuf/emit