Spec-Zone.ru › C++

std::basic_syncbuf<CharT,Traits,Allocator>::emit

bool emit();

Атомарно передаёт весь ожидающий вывода текст в обёрнутый поток.

Все вызовы emit(), передающие символы в один и тот же объект буфера обёрнутого потока, выполняются в общем порядке, в котором каждый вызов emit() синхронизируется-с последующими вызовами emit() в этом общем порядке, даже если эти вызовы выполняются через разные экземпляры std::basic_syncbuf/std::basic_osyncstream. На практике это означает, что emit() захватывает блокировку, однозначно связанную с объектом обёрнутого потока: например, она может храниться в статической хеш-таблице, где в качестве ключа используется адрес обёрнутого потока.

Если с момента последнего вызова emit() был вызван sync, функция также сбрасывает буфер обёрнутого потока, вызывая для него pubsync().

Параметры

(нет)

Возвращаемое значение

true, если выполняются все следующие условия:

  • обёрнутый поток существует (указатель на буфер обёрнутого потока не равен null)
  • все символы из временного хранилища успешно переданы в обёрнутый поток
  • вызов pubsync(), если он был запрошен, также завершился успешно.

В противном случае возвращает false.

Примечания

Обычно вызывается деструктором или оператором перемещающего присваивания владеющего объекта std::basic_osyncstream либо функцией std::basic_osyncstream::emit.

Пример

См. также

(деструктор)
уничтожает basic_osyncstream и передаёт его внутренний буфер
(открытая функция-член std::basic_osyncstream<CharT,Traits,Allocator>)
emit
вызывает 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/cpp/io/basic_syncbuf/emit

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API