Namensräume
Varianten
Aktionen

std::basic_syncbuf

Von cppreference.com
< cpp‎ | io
 
 
 
std::basic_syncbuf
 
Definiert in Header <syncstream>
template<

    class CharT,
    Klasse Traits = std::char_traits<CharT>,
    Klasse Allocator = std::allocator<CharT>

> class basic_syncbuf : public std::basic_streambuf<CharT, Traits>
(seit C++20)

std::basic_syncbuf ist ein Wrapper für einen std::basic_streambuf (der bei der Konstruktion als Zeiger übergeben wird). Er sammelt die Ausgabe in seinem eigenen internen Puffer und überträgt dessen gesamten Inhalt beim Zerstören und wenn explizit angefordert, atomar an den gewickelten Puffer, sodass er als zusammenhängende Zeichenfolge erscheint. Er garantiert, dass es keine Datenrennen und keine Vermischung von Zeichen gibt, die an den gewickelten Puffer gesendet werden, solange alle anderen Ausgaben an denselben Puffer über (möglicherweise unterschiedliche) Instanzen von std::basic_syncbuf erfolgen.

Die typische Implementierung von std::basic_syncbuf enthält einen Zeiger auf den gewickelten std::basic_streambuf, ein boolesches Flag, das angibt, ob der Puffer seinen Inhalt beim Synchronisieren (Flush) an den gewickelten Puffer überträgt, ein boolesches Flag, das einen ausstehenden Flush anzeigt, wenn die Richtlinie darin besteht, nicht beim Synchronisieren zu übertragen, einen internen Puffer, der Allocator (wie z. B. std::string) verwendet, und einen Zeiger auf eine Mutex, die zum Synchronisieren der Übertragung zwischen mehreren Threads verwendet wird, die auf denselben gewickelten Stream-Puffer zugreifen (diese Mutexes können sich in einer Hash-Map befinden, wobei Zeiger auf std::basic_streambuf-Objekte als Schlüssel verwendet werden).

Wie andere Streambuf-Klassen wird std::basic_syncbuf normalerweise nicht direkt, sondern nur über den entsprechenden Stream, std::osyncstream, angesprochen.

Mehrere Typedefs für gängige Zeichentypen werden bereitgestellt

Definiert in Header <syncstream>
Typ Definition
std::syncbuf std::basic_syncbuf<char>
std::wsyncbuf std::basic_syncbuf<wchar_t>

Inhalt

[bearbeiten] Member-Typen

Mitgliedertyp Definition
char_type CharT[bearbeiten]
traits_type Traits; das Programm ist fehlerhaft, wenn Traits::char_type nicht CharT ist.[bearbeiten]
int_type Traits::int_type[bearbeiten]
pos_type Traits::pos_type[bearbeiten]
off_type Traits::off_type[bearbeiten]
allocator_type Allocator
streambuf_type std::basic_streambuf<CharT, Traits>

[bearbeiten] Member-Funktionen

Öffentliche Memberfunktionen

konstruiert ein basic_syncbuf-Objekt
(öffentliche Member-Funktion) [bearbeiten]
weist ein basic_syncbuf-Objekt zu
(öffentliche Member-Funktion) [bearbeiten]
tauscht zwei basic_syncbuf-Objekte
(öffentliche Member-Funktion) [bearbeiten]
zerstört das basic_syncbuf und gibt seinen internen Puffer aus
(öffentliche Member-Funktion) [bearbeiten]
überträgt den gesamten internen Puffer atomar an den gewickelten Streambuf
(öffentliche Member-Funktion) [bearbeiten]
ruft den Zeiger auf den gewickelten Streambuf ab
(öffentliche Member-Funktion) [bearbeiten]
ruft den von diesem basic_syncbuf verwendeten Allocator ab
(öffentliche Member-Funktion) [bearbeiten]
ändert die aktuelle Policy "emit on sync" (Übertragung beim Synchronisieren)
(öffentliche Member-Funktion) [bearbeiten]

Geschützte Memberfunktionen

gibt entweder aus oder zeichnet einen ausstehenden Flush auf, abhängig von der aktuellen Policy "emit on sync"
(öffentliche Member-Funktion) [bearbeiten]

[bearbeiten] Nicht-Member-Funktionen

spezialisiert den Algorithmus std::swap
(Funktionsschablone) [edit]

Geerbt von std::basic_streambuf

Membertypen

Mitgliedertyp Definition
char_type CharT[bearbeiten]
traits_type Traits; das Programm ist fehlerhaft, wenn Traits::char_type nicht CharT ist.[bearbeiten]
int_type Traits::int_type[bearbeiten]
pos_type Traits::pos_type[bearbeiten]
off_type Traits::off_type[bearbeiten]

Memberfunktionen

[virtuell]
zerstört das basic_streambuf-Objekt
(virtuelle öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
Lokale
ändert die zugeordnete Locale und ruft imbue() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
holt eine Kopie der zugeordneten Locale
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
Positionierung
ruft setbuf() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
ruft seekoff() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
ruft seekpos() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
ruft sync() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
Get-Bereich
holt die Anzahl der im Get-Bereich sofort verfügbaren Zeichen
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
bewegt die Eingabesequenz vorwärts und liest dann ein Zeichen, ohne erneut vorzurücken
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
(in C++17 entfernt)
liest ein Zeichen aus der Eingabesequenz und rückt die Sequenz vor
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
liest ein Zeichen aus der Eingabesequenz, ohne die Sequenz vorzurücken
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
ruft xsgetn() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
Put-Bereich
schreibt ein Zeichen in den Put-Bereich und rückt den nächsten Zeiger vor
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
ruft xsputn() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
Putback
legt ein Zeichen zurück in die Eingabesequenz
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
verschiebt den nächsten Zeiger in der Eingabesequenz um eins zurück
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]

Geschützte Memberfunktionen

konstruiert ein basic_streambuf-Objekt
(geschützte Member-Funktion) [bearbeiten]
(C++11)
ersetzt ein basic_streambuf-Objekt
(geschützte Member-Funktion) [bearbeiten]
(C++11)
tauscht zwei basic_streambuf-Objekte
(geschützte Member-Funktion) [bearbeiten]
Lokale
[virtuell]
reagiert auf eine Änderung der zugeordneten Locale
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
Positionierung
[virtuell]
ersetzt den Puffer durch ein benutzerdefiniertes Array, falls zulässig
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
[virtuell]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung relativer Adressierung
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
[virtuell]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beidem neu, unter Verwendung absoluter Adressierung
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
[virtuell]
synchronisiert die Puffer mit der zugeordneten Zeichensequenz
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
Get-Bereich
[virtuell]
holt die Anzahl der für die Eingabe in der zugeordneten Eingabesequenz verfügbaren Zeichen, falls bekannt
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
[virtuell]
liest Zeichen aus der zugeordneten Eingabesequenz in den Get-Bereich
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
[virtuell]
liest Zeichen aus der zugeordneten Eingabesequenz in den Get-Bereich und rückt den nächsten Zeiger vor
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
[virtuell]
liest mehrere Zeichen aus der Eingabesequenz
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
gibt einen Zeiger auf den Anfang, das aktuelle Zeichen und das Ende des Get-Bereichs zurück
(geschützte Member-Funktion) [bearbeiten]
rückt den nächsten Zeiger in der Eingabesequenz vor
(geschützte Member-Funktion) [bearbeiten]
positioniert die Zeiger für Anfang, nächsten und Ende der Eingabesequenz neu
(geschützte Member-Funktion) [bearbeiten]
Put-Bereich
[virtuell]
schreibt mehrere Zeichen in die Ausgabesequenz
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
[virtuell]
schreibt Zeichen aus dem Put-Bereich in die zugeordnete Ausgabesequenz
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]
gibt einen Zeiger auf den Anfang, das aktuelle Zeichen und das Ende des Put-Bereichs zurück
(geschützte Member-Funktion) [bearbeiten]
rückt den nächsten Zeiger der Ausgabesequenz vor
(geschützte Member-Funktion) [bearbeiten]
positioniert die Zeiger für Anfang, nächsten und Ende der Ausgabesequenz neu
(geschützte Member-Funktion) [bearbeiten]
Putback
[virtuell]
legt ein Zeichen in die Eingabesequenz zurück, möglicherweise unter Änderung der Eingabesequenz
(virtuelle geschützte Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]

[bearbeiten] Hinweise

Feature-Test-Makro Wert Std Feature
__cpp_lib_syncbuf 201803L (C++20) Synchronisierte gepufferte Ostreams (std::syncbuf, std::osyncstream) und Manipulatoren