Namespaces
Variants

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

From cppreference.net
bool emit ( ) ;

Überträgt alle ausstehenden Ausgaben atomar an den umschlossenen Stream.

Alle emit ( ) Aufrufe, die Zeichen an denselben umschlossenen Streampuffer-Objekt übertragen, scheinen in einer Gesamtordnung ausgeführt zu werden, wobei jeder emit ( ) Aufruf synchronisiert mit nachfolgenden emit ( ) Aufrufen in dieser Gesamtordnung, selbst wenn diese Aufrufe durch unterschiedliche Instanzen von std::basic_syncbuf / std::basic_osyncstream erfolgen. In der Praxis bedeutet dies, dass emit() eine Sperre übernimmt, die eindeutig mit dem umschlossenen Stream-Objekt assoziiert ist: Beispielsweise könnte sie in einer statischen Hash-Map gehalten werden, wobei die Adresse des umschlossenen Streams als Schlüssel verwendet wird.

Wenn seit dem letzten Aufruf von sync ein Aufruf von emit ( ) erfolgt ist, dann leert es ebenfalls den zugrunde liegenden Stream durch Aufruf von pubsync() auf diesem.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

true wenn alle folgenden Bedingungen zutreffen:

  • es gibt einen umschlossenen Stream (der Zeiger auf den umschlossenen Streambuf ist nicht null)
  • alle Zeichen aus dem temporären Speicher wurden erfolgreich in den umschlossenen Stream übertragen
  • der Aufruf von pubsync() , falls angefordert, wurde ebenfalls erfolgreich abgeschlossen.

Gibt false zurück.

Hinweise

Normalerweise aufgerufen durch den Destruktor oder die Move-Zuweisung des besitzenden std::basic_osyncstream , oder durch std::basic_osyncstream::emit .

Beispiel

Siehe auch

zerstört den basic_osyncstream und gibt seinen internen Puffer aus
(öffentliche Elementfunktion von std::basic_osyncstream<CharT,Traits,Allocator> )
ruft emit() auf dem zugrundeliegenden basic_syncbuf auf, um seine internen Daten zum endgültigen Ziel zu übertragen
(öffentliche Elementfunktion von std::basic_osyncstream<CharT,Traits,Allocator> )
konstruiert ein basic_syncbuf Objekt
(öffentliche Elementfunktion)