std::basic_syncbuf<CharT,Traits,Allocator>::emit - cppreference.com (original) (raw)

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

(none)

[edit] Return value

true if all of the following is true:

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