std::basic_syncbuf<CharT,Traits,Allocator>::emit
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++20) | ||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
| Synchronized Output | ||||
(C++20) | ||||
| Types | ||||
| Error category interface | ||||
(C++11) | ||||
(C++11) |
| Public member functions | ||||
(C++20) | ||||
(C++20) | ||||
(C++20) | ||||
basic_syncbuf::emit (C++20) | ||||
(C++20) | ||||
(C++20) | ||||
| Protected member functions | ||||
(C++20) | ||||
| Non-member functions | ||||
(C++20) |
| 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 or move assignment 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>) [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] |