Scroll to navigation

std::basic_syncbuf::emit(3) C++ Standard Libary std::basic_syncbuf::emit(3)

NAME

std::basic_syncbuf::emit - std::basic_syncbuf::emit

Synopsis


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


This section is incomplete
Reason: no example

See also


destroys the basic_osyncstream and emits its internal buffer
destructor (public member function of
std::basic_osyncstream<CharT,Traits,Allocator>)
calls emit on the underlying basic_syncbuf to transmit its internal
emit data to the final destination
(public member function of
std::basic_osyncstream<CharT,Traits,Allocator>)
constructor constructs a basic_syncbuf object
(public member function)

2022.07.31 http://cppreference.com