std::basic_syncbuf<CharT,Traits,Allocator>::emit
bool emit(); |
Атомарно передаёт все ожидающие данные вывода в обернутый поток.
Все emit() вызовы, передающие символы в один и тот же буфер обернутого потока, выполняются в общей упорядоченности, где каждый вызов emit() синхронизируется с последующими вызовами emit() в этой общей упорядоченности, даже если эти вызовы выполняются через разные экземпляры std::basic_syncbuf/std::basic_osyncstream. На практике это означает, что emit() занимает блокировку, уникально связанную с объектом обернутого потока: например, она может храниться в статическом хэш-таблице, где адрес обернутого потока используется в качестве ключа.
Если с момента последнего вызова emit() был вызван sync, то также флушит обернутый поток, вызвав pubsync() на нём.
Параметры
(нет)
Значение результата
true если все перечисленные условия выполняются:
- есть обернутый поток (указатель на обернутый streambuf не равен null)
- все символы из временного хранилища успешно отправлены в обернутый поток
- вызов
pubsync(), если затребован, также выполнен успешно.
Возвращает false в противном случае.
Примечания
Обычно вызывается деструктором или операцией присваивания перемещения владельца std::basic_osyncstream, или функцией std::basic_osyncstream::emit.
Пример
См. также
уничтожает basic_osyncstream и передаёт его внутренний буфер (общедоступный член-функция std::basic_osyncstream<CharT,Traits,Allocator>) |
|
вызывает emit() на базовом basic_syncbuf для передачи его внутренних данных в конечный пункт назначения (общедоступный член-функция std::basic_osyncstream<CharT,Traits,Allocator>) |
|
создаёт объект basic_syncbuf (общедоступный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_syncbuf/emit