Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | io‎ | basic syncbuf
 
 
 
std::basic_syncbuf
Öffentliche Memberfunktionen
basic_syncbuf::emit
(C++20)
Geschützte Memberfunktionen
Nicht-Member-Funktionen
 
bool emit();

Sendet alle ausstehenden Ausgaben atomar an den umgebenden Stream.

Alle emit()-Aufrufe, die Zeichen an denselben umgebenden Stream-Buffer übertragen, scheinen in einer totalen Reihenfolge ausgeführt zu werden, wobei jeder emit()-Aufruf synchronisiert mit nachfolgenden emit()-Aufrufen in dieser totalen Reihenfolge, selbst wenn diese Aufrufe über unterschiedliche Instanzen von std::basic_syncbuf/std::basic_osyncstream erfolgen. Praktisch bedeutet dies, dass emit() eine Sperre erwirbt, die eindeutig mit dem umgebenden Stream-Objekt verknüpft ist: Sie könnte beispielsweise in einer statischen Hash-Map gehalten werden, bei der die Adresse des umgebenden Streams als Schlüssel verwendet wird.

Wenn seit dem letzten Aufruf von emit() ein Aufruf von sync erfolgt war, wird auch der umgebende Stream geleert, indem pubsync() darauf aufgerufen wird.

Inhalt

[edit] Parameter

(keine)

[edit] Rückgabewert

true, wenn alle folgenden Bedingungen erfüllt sind

  • ein umgebender Stream vorhanden ist (der Zeiger auf den umgebenden Stream-Buffer ist nicht Null)
  • alle Zeichen aus dem temporären Speicher erfolgreich in den umgebenden Stream gesendet wurden
  • der Aufruf von pubsync(), falls angefordert, ebenfalls erfolgreich abgeschlossen wurde.

Gibt andernfalls false zurück.

[edit] Hinweise

Normalerweise aufgerufen vom Destruktor oder der Move-Zuweisung des besitzenden std::basic_osyncstream oder von std::basic_osyncstream::emit.

[edit] Beispiel

[edit] Siehe auch

zerstört das basic_osyncstream-Objekt und gibt seinen internen Puffer aus
(public member function of std::basic_osyncstream<CharT,Traits,Allocator>) [edit]
ruft emit() auf dem zugrundeliegenden basic_syncbuf auf, um seine internen Daten an das endgültige Ziel zu übertragen
(public member function of std::basic_osyncstream<CharT,Traits,Allocator>) [edit]
konstruiert ein basic_syncbuf-Objekt
(öffentliche Member-Funktion) [bearbeiten]