std:: basic_syncbuf
|
Definiert im Header
<syncstream>
|
||
|
template
<
class
CharT,
|
(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
|
(C++20)
|
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
|