Namespaces
Variants

std:: basic_syncbuf

From cppreference.net
< cpp ‎ | io
Definiert im Header <syncstream>
template <

class CharT,
class Traits = std:: char_traits < CharT > ,
class 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 (bereitgestellt zur Konstruktionszeit als Zeiger). Es sammelt Ausgabe in seinem eigenen internen Puffer und überträgt seinen gesamten Inhalt atomar an den umschlossenen Puffer bei Destruktion und wenn explizit angefordert, sodass sie als zusammenhängende Zeichenfolge erscheinen. Es garantiert, dass es keine Datenrennen und keine Vermischung von Zeichen gibt, die an den umschlossenen Puffer gesendet werden, solange alle anderen Ausgaben an denselben Puffer über, möglicherweise verschiedene, Instanzen von std::basic_syncbuf erfolgen.

Typische Implementierung von std::basic_syncbuf enthält einen Zeiger auf den eingebetteten std::basic_streambuf , ein boolesches Flag, das anzeigt, ob der Puffer seine Inhalte beim Sync (Flush) an den eingebetteten Puffer überträgt, ein boolesches Flag für einen ausstehenden Flush, wenn die Richtlinie kein Emit bei Sync vorsieht, einen internen Puffer, der Allocator verwendet (wie std::string ), und einen Zeiger auf ein Mutex zur Synchronisation des Emit-Vorgangs zwischen mehreren Threads, die auf denselben eingebetteten Stream-Puffer zugreifen (diese Mutexe können sich in einer Hash-Map befinden, wobei Zeiger auf std::basic_streambuf -Objekte als Schlüssel dienen).

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

Es werden mehrere Typdefinitionen für gängige Zeichentypen bereitgestellt:

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

Inhaltsverzeichnis

Mitgliedertypen

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

Memberfunktionen

Öffentliche Elementfunktionen

konstruiert ein basic_syncbuf Objekt
(öffentliche Elementfunktion)
weist ein basic_syncbuf Objekt zu
(öffentliche Elementfunktion)
tauscht zwei basic_syncbuf Objekte
(öffentliche Elementfunktion)
zerstört den basic_syncbuf und gibt seinen internen Puffer aus
(öffentliche Elementfunktion)
überträgt den gesamten internen Puffer atomar an den gekapselten Streambuf
(öffentliche Elementfunktion)
ruft den Zeiger auf den gekapselten Streambuf ab
(öffentliche Elementfunktion)
ruft den von diesem basic_syncbuf verwendeten Allokator ab
(öffentliche Elementfunktion)
ändert die aktuelle Emit-on-Sync-Richtlinie
(öffentliche Elementfunktion)

Geschützte Elementfunktionen

gibt entweder aus oder zeichnet einen ausstehenden Flush auf, abhängig von der aktuellen Emit-on-Sync-Richtlinie
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

spezialisiert den std::swap Algorithmus
(Funktionsschablone)

Geerbt von std:: basic_streambuf

Membertypen

Mitgliedtyp Definition
char_type CharT
traits_type Traits ; das Programm ist fehlerhaft, wenn Traits::char_type nicht CharT ist.
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

Memberfunktionen

[virtual]
zerstört das basic_streambuf -Objekt
(virtuelle öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
Locales
ändert die assoziierte Locale und ruft imbue ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
erhält eine Kopie der assoziierten Locale
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
Positionierung
ruft setbuf ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
ruft seekoff ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
ruft seekpos ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
ruft sync ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
Lesebereich
ermittelt die Anzahl sofort verfügbarer Zeichen im Lesebereich
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
bewegt die Eingabesequenz vor und liest ein Zeichen ohne weitere Bewegung
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
(entfernt in C++17)
liest ein Zeichen aus der Eingabesequenz und bewegt die Sequenz vor
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
liest ein Zeichen aus der Eingabesequenz ohne Bewegung der Sequenz
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
ruft xsgetn ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
Schreibbereich
schreibt ein Zeichen in den Schreibbereich und bewegt den nächsten Zeiger
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
ruft xsputn ( ) auf
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
Zurücklegen
legt ein Zeichen in der Eingabesequenz zurück
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
bewegt den nächsten Zeiger in der Eingabesequenz um eine Position zurück
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )

Geschützte Memberfunktionen

konstruiert ein basic_streambuf Objekt
(geschützte Elementfunktion)
(C++11)
ersetzt ein basic_streambuf Objekt
(geschützte Elementfunktion)
(C++11)
tauscht zwei basic_streambuf Objekte aus
(geschützte Elementfunktion)
Locales
[virtual]
reagiert auf eine Änderung des assoziierten Locale
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
Positionierung
[virtual]
ersetzt den Puffer durch ein benutzerdefiniertes Array, falls erlaubt
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden neu, unter Verwendung relativer Adressierung
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
positioniert den nächsten Zeiger in der Eingabesequenz, Ausgabesequenz oder beiden mittels absoluter Adressierung neu
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
synchronisiert die Puffer mit der assoziierten Zeichensequenz
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
Bereich abrufen
[virtual]
Ermittelt die Anzahl der für die Eingabe verfügbaren Zeichen in der zugehörigen Eingabesequenz, falls bekannt
(geschützte virtuelle Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
Liest Zeichen aus der zugehörigen Eingabesequenz in den Get-Bereich
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
Liest Zeichen aus der zugehörigen Eingabesequenz in den Get-Bereich und bewegt den nächsten Zeiger vorwärts
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
liest mehrere Zeichen aus der Eingabesequenz
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
gibt einen Zeiger auf den Anfang, das aktuelle Zeichen und das Ende des Lesebereichs zurück
(geschützte Elementfunktion)
bewegt den nächsten Zeiger in der Eingabesequenz vor
(geschützte Elementfunktion)
positioniert die Anfangs-, Nächste- und End-Zeiger der Eingabesequenz neu
(geschützte Elementfunktion)
Put-Bereich
[virtual]
Schreibt mehrere Zeichen in die Ausgabesequenz
(geschützte virtuelle Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
Schreibt Zeichen in die zugehörige Ausgabesequenz aus dem Put-Bereich
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
gibt einen Zeiger auf den Anfang, das aktuelle Zeichen und das Ende des Put-Bereichs zurück
(geschützte Member-Funktion)
bewegt den nächsten Zeiger der Ausgabesequenz vorwärts
(geschützte Elementfunktion)
positioniert die Anfangs-, Nächste- und End-Zeiger der Ausgabesequenz neu
(geschützte Elementfunktion)
Putback
[virtual]
Fügt ein Zeichen zurück in die Eingabesequenz ein und modifiziert möglicherweise die Eingabesequenz
(geschützte virtuelle Memberfunktion von std::basic_streambuf<CharT,Traits> )

Hinweise

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