Freigeben über


basic_streambuf-Klasse

Beschreibt eine abstrakte Basisklasse zum Ableiten eines Streampuffers, der die Übertragung von Elemente daraus eine bestimmte Darstellung eines Streams steuert.

template<class Elem, class Tr = char_traits<Elem> >
   class basic_streambuf;

Parameter

Hinweise

Die Vorlagenklasse beschreibt eine abstrakte Basisklasse zum Ableiten eines Streampuffers, der die Übertragung von Elemente daraus eine bestimmte Darstellung eines Streams steuert. Ein Objekt der Klassen basic_streambuf erleichtert steuern einen Stream mit Elementen des Typs Tr, auch char_type, dessen Zeichenmerkmale durch die char_traits festgelegt werden, auch traits_type.

Jeder Streampuffer steuert begrifflich zwei unabhängige Streams: ein für Extraktion (Eingabe) und eines für Einfüge- (Ausgabe). Eine bestimmte Darstellung macht möglicherweise jedoch eines oder beide Streams jedoch nicht zugänglich. Sie werden in der Regel eine Beziehung zwischen den zwei Streams bei. Was Sie in den Ausgabestream von basic_stringbuf<Elem, Tr>-Objekt beispielsweise einfügen ist, was Sie später Auszug aus dem Eingabestream. Wenn Sie einen Stream aus basic_filebuf<Elem, Tr>-Objekt positionieren, positionieren Sie den anderen im Stream Tandem.

Die öffentlichen Schnittstelle zur Vorlagenklasse basic_streambuf stellt die Vorgänge, die allen Streampuffern gemeinsam sind, jedoch spezialisiert. Die geschützte Schnittstelle stellt die Vorgänge, die für eine bestimmte Darstellung eines Streams benötigt werden, um seine Arbeit erledigt. Die geschützte virtuelle Memberfunktionen können Sie das Verhalten eines abgeleiteten Streampuffers für eine bestimmte Darstellung eines Streams anpassen. Jeder abgeleitete Streampuffer in dieser Bibliothek werden, wie er das Verhalten der geschützten virtuellen Memberfunktionen spezialisiert. Das Standardverhalten für die Basisklasse, die oft, nichts zu tun ist, wird in diesem Thema beschrieben.

Die verbleibenden geschützten Memberfunktionen steuern das Kopieren in und aus jedem Speicher, der angegeben wird, um die Übertragung vom und Streams zu puffern. Ein Eingabepuffer wird beispielsweise " bezeichnet:

  • eback, ein Zeiger am Anfang des Puffers.

  • gptr, ein Zeiger auf das nächste Element zum Lesen.

  • egptr, ein Zeiger nur nach dem Ende des Puffers.

Entsprechend wird ein Ausgabepuffer " bezeichnet:

  • pbase, ein Zeiger am Anfang des Puffers.

  • pptr, ein Zeiger zum nächsten zu schreiben Element.

  • epptr, ein Zeiger nur nach dem Ende des Puffers.

Für jeden Puffer wird Folgendes Protokoll verwendet:

  • Wenn der folgende Zeiger NULL ist, besteht kein Puffer. Andernfalls werden alle drei Mauszeiger in die gleiche Sequenz. Sie können für sicher Reihenfolge verglichen werden.

  • Einen Ausgabepuffer wenn der folgende Zeiger kleiner als der Endenzeiger vergleicht, können Sie ein Element in der Schreibposition speichern, die Zeiger der folgenden festgelegt wird.

  • Für einen Eingabepuffer wenn der folgende Zeiger kleiner als der Endenzeiger vergleicht, können Sie ein Element in der Leseposition lesen, die vom folgenden Zeiger festgelegt wird.

  • Für einen Eingabepuffer wenn der Anfangszeiger kleiner als nächster Zeiger vergleicht, können Sie wieder einfügen, die ein Element in der Rückstellungsposition durch den folgenden dekrementierten Zeiger fest.

Alle geschützten virtuellen Memberfunktionen, die Sie für eine Klasse erstellen, die von basic_streambuf<,ElemTr> abgeleitet wird, müssen zusammenarbeiten, beibehalten, dieses Protokoll beizubehalten.

Ein Objekt der Klasse basic_streambuf<Elem, Tr> speichert die sechs zuvor beschriebenen Zeiger. Sie speichert auch ein Gebietsschemaobjekt in ein Objekt des Typs Gebietsschema für eine Verwendung durch einen abgeleiteten Streampuffer.

Konstruktoren

basic_streambuf

Konstruiert ein Objekt vom Typ basic_streambuf.

Typedefs

char_type

Ordnet einen Typnamen mit dem Vorlagenparameter Elem zu.

int_type

Ordnet einen Typnamen innerhalb basic_streambuf Bereichs mit dem Vorlagenparameter Elem zu.

off_type

Ordnet einen Typnamen innerhalb basic_streambuf Bereichs mit dem Vorlagenparameter Elem zu.

pos_type

Ordnet einen Typnamen innerhalb basic_streambuf Bereichs mit dem Vorlagenparameter Elem zu.

traits_type

Ordnet einen Typnamen mit dem Vorlagenparameter Tr zu.

Memberfunktionen

eback

Eine geschützte Funktion, die einen Zeiger auf den Anfang des Eingabepuffers zurückgibt.

egptr

Eine geschützte Funktion, die einen Zeiger nur nach dem Ende des Eingabepuffers zurückgibt.

epptr

Eine geschützte Funktion, die einen Zeiger nur nach dem Ende des Ausgabepuffers zurückgibt.

gbump

Eine geschützte Funktion, die den folgenden _Count Zeiger für den Eingabepuffer hinzufügt.

getloc

Ruft das Gebietsschema des basic_streambuf-Objekts ab.

gptr

Eine geschützte Funktion, die einen Zeiger auf das nächste Element des Eingabepuffers zurückgibt.

durchtränken Sie

Eine geschützte, virtuelle Funktion aufgerufen über pubimbue.

in_avail

Gibt die Anzahl von Elementen zurück, die bereit sind, aus dem Puffer gelesen werden.

Überlauf

Eine geschützte virtuelle Funktion, die aufgerufen, wenn ein neues Zeichen in einem vollständigen Puffer eingefügt wird.

pbackfail

Eine geschützte virtuelle Memberfunktion, die versucht, die ein Element in dem Eingabestream anzuordnen, dann machen das aktuelle Element (dargestellt für vom folgenden Zeiger).

pbase

Eine geschützte Funktion, die einen Zeiger auf den Anfang des Ausgabepuffers zurückgibt.

pbump

Eine geschützte Funktion, die den folgenden count Zeiger für den Ausgabepuffer hinzufügt.

pptr

Eine geschützte Funktion, die einen Zeiger auf das nächste Element des Ausgabepuffers zurückgibt.

pubimbue

Legt das Gebietsschema des basic_streambuf-Objekts fest.

pubseekoff

Ruft seekoff, eine geschützte virtuelle Funktion auf, die in einer abgeleiteten Klasse überschrieben wird.

pubseekpos

Ruft seekpos, eine geschützte virtuelle Funktion, die in einer abgeleiteten Klasse überschrieben wird auf und fügt die aktuelle Position des Mauszeigers zurück.

pubsetbuf

Ruft setbuf, eine geschützte virtuelle Funktion auf, die in einer abgeleiteten Klasse überschrieben wird.

pubsync

Ruft Synchronisierung, eine geschützte virtuelle Funktion, die in einer abgeleiteten Klasse überschrieben wird auf und aktualisiert den externen Stream, der mit diesem Puffer verknüpften wird.

sbumpc

Liest und gibt das aktuelle Element zurück und verschiebt den Stream-Zeiger.

seekoff

Die Versuche der geschützten virtuellen Memberfunktion, um die aktuelle Position für die kontrollierten Streams zu ändern.

seekpos

Die Versuche der geschützten virtuellen Memberfunktion, um die aktuelle Position für die kontrollierten Streams zu ändern.

setbuf

Die geschützte virtuelle Memberfunktion wird eine Vorgangseinzelheit auf jedes abgeleiteten Streampuffer aus.

setg

Eine geschützte Funktion, die Zeiger _Gbeg am Anfang, _Gnext im folgenden Zeiger und _Gend für den im Endenzeiger Eingabepuffer speichert.

setp

Eine geschützte Funktion, die Zeiger _Pend und _Pbeg am Anfang im Endenzeiger für den Ausgabepuffer speichert.

sgetc

EINGABETASTEaktuelles element, ohne Position im Stream zu ändern.

sgetn

Gibt die Zahl des Elementlesens zurück.

showmanyc

Geschützte virtuelle Memberfunktion, die einer die Anzahl von Zeichen zurückgibt, die aus dem Eingabestream extrahiert werden und dabei sicherstellen, dass das Programm nicht abhängig von einem unbestimmten Wartevorgang ist.

snextc

Liest das aktuelle Element und gibt dem folgenden Element zurück.

sputbackc

Setzt char_type in den Stream ein.

sputc

Setzt ein Zeichen in den Stream.

sputn

Fügt eine Zeichenfolge in den Stream.

stossc

Vorbeibewegung an das aktuelle Element im Stream.

sungetc

Ruft ein Zeichen vom Stream ab.

swap

Vertauscht die Werte in diesem Objekt für die Werte im bereitgestellten basic_streambuf-Objektparameter aus.

Synchronisierung

Eine geschützte virtuelle Funktion, die versucht, die Streams kontrollierten mit allen zugeordneten externen Streams zu synchronisieren.

uflow

Eine geschützte virtuelle Funktion, die das aktuelle Element im Eingabestream extrahiert.

Unterlauf

Eine geschützte virtuelle Funktion, die das aktuelle Element im Eingabestream extrahiert.

xsgetn

Eine geschützte virtuelle Funktion, die Elemente aus dem Eingabestream extrahiert.

xsputn

Eine geschützte virtuelle Funktion, die Elemente in den Ausgabestream einfügt.

Operatoren

operator=

Weist die Werte dieses Objekts von einem anderen basic_streambuf-Objekt zu.

Anforderungen

Header: <streambuf>

Namespace: std

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek

iostream-Programmierung

iostreams-Konventionen

Weitere Ressourcen

basic_streambuf Member

<streambuf> Member