Condividi tramite


Classe basic_streambuf

Viene descritta una classe base astratta per derivare un buffer del flusso, che controlla la trasmissione degli elementi in e da una rappresentazione specifica di un flusso.

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

Parametri

Note

La classe modello descrive una classe base astratta per derivare un buffer del flusso, che controlla la trasmissione degli elementi in e da una rappresentazione specifica di un flusso. Un oggetto delle guide di basic_streambuf della classe archivia un flusso con elementi di tipo Tr, noti anche come char_type, in cui i tratti di carattere sono determinati dalla classe char_traits, noto anche come traits_type.

Ciascun buffer del flusso controlla concettualmente due flussi indipendenti: uno per le estrazioni (input) e uno per gli inserimenti (restituiti). Una rappresentazione specifica è possibile, tuttavia, impostare uno o entrambi i flussi inaccessibili. Gestisce in genere la relazione tra i due flussi. Cosa inserire nel flusso di output di<basic_stringbufElem, l'oggetto> di Tr, ad esempio, è quello che è estratto successivo dal flusso di input. Quando si inserisce un flusso di<basic_filebufElem, l'oggetto> di Tr, inserire un altro flusso in tandem.

L'interfaccia pubblica a classe modello basic_streambuf fornisce operazioni comuni a tutti i buffer del flusso, per quanto sofisticate. L'interfaccia protetta consente le operazioni necessarie per una rappresentazione specifica di un flusso per le attività. Le funzioni membro virtuali protette consentono di estendere il comportamento di un buffer del flusso derivato per una rappresentazione specifica di un flusso. Ciascun buffer del flusso derivato in questa libreria viene descritto come specializza il comportamento delle funzioni membro virtuali protette. Il comportamento predefinito per la classe di base, spesso di non eseguire alcuna operazione, è descritto in questo argomento.

Le funzioni membro protected rimanenti controllano la copia in e da qualsiasi archiviazione fornita in buffer le trasmissioni a e dai flussi. Un buffer di input, ad esempio, è caratterizzato da:

  • eback, un puntatore all'inizio del buffer.

  • gptr, un puntatore all'elemento successivo da leggere.

  • egptr, l'esperienza di puntatore alla fine del buffer.

Analogamente, un buffer di output è caratterizzato da:

  • pbase, un puntatore all'inizio del buffer.

  • pptr, un puntatore all'elemento successivo da scrivere.

  • epptr, l'esperienza di puntatore alla fine del buffer.

Per qualsiasi buffer, il protocollo seguente viene utilizzato:

  • Se il puntatore seguente è null, non esiste buffer. In caso contrario, tutti e tre passaggio di puntatori nello stesso ordina. Possono in modo sicuro essere confrontati per ordine.

  • Per un buffer di output, se il puntatore seguente vengono confrontate minore del puntatore finale, è possibile memorizzare un elemento nella posizione di scrittura definita dal puntatore seguente.

  • Per un buffer di input, se il puntatore seguente vengono confrontate minore del puntatore finale, è possibile leggere un elemento nella posizione del puntatore definita seguente.

  • Per un buffer di input, se il puntatore iniziale confronta minore del puntatore seguente, è possibile riportare un elemento alla posizione del putback definita dal puntatore seguente diminuisce.

Tutte le funzioni membro virtuali protette che occorre scrivere per una classe derivata da<basic_streambufElem, Tr> devono cooperare quando si gestisce questo protocollo.

Un oggetto di classe basic_streambuf<Elem, Tr> archivia sei i puntatori descritti in precedenza. Memorizzano un oggetto impostazioni locali in un oggetto di tipo impostazioni locali per l'utilizzo potenziale di un buffer del flusso derivato.

Costruttori

basic_streambuf

Crea un oggetto di tipo basic_streambuf.

Definizioni typedef

char_type

Associa un nome del tipo con il parametro di modello di Elem.

int_type

Associa un nome di tipo nell'ambito basic_streambuf con il parametro di modello di Elem.

off_type

Associa un nome di tipo nell'ambito basic_streambuf con il parametro di modello di Elem.

pos_type

Associa un nome di tipo nell'ambito basic_streambuf con il parametro di modello di Elem.

traits_type

Associa un nome del tipo con il parametro di modello di Tr.

Funzioni del membro

eback

Una funzione protetta che restituisce un puntatore all'inizio del buffer di input.

egptr

Una funzione protetta che restituisce un'esperienza del puntatore alla fine del buffer di input.

epptr

Una funzione protetta che restituisce un'esperienza del puntatore alla fine del buffer di output.

gbump

Una funzione protetta che aggiunge _Count al puntatore seguente per il buffer di input.

getloc

Ottiene le impostazioni locali dell'oggetto di basic_streambuf.

gptr

Una funzione protetta che restituisce un puntatore all'elemento successivo del buffer di input.

impregni

Un metodo virtuale protetto, funzione virtuale denominata da pubimbue.

in_avail

Restituisce il numero di elementi che è pronto per essere letta dal buffer.

overflow

Una funzione virtuale protetta che possa essere chiamato quando un nuovo carattere viene inserito in un buffer completo.

pbackfail

Una funzione membro virtuale protetta che tenta di riportare un elemento del flusso di input, le rende l'elemento corrente (puntato il puntatore seguente).

pbase

Una funzione protetta che restituisce un puntatore all'inizio del buffer di output.

pbump

Una funzione protetta che aggiunge count al puntatore seguente per il buffer di output.

pptr

Una funzione protetta che restituisce un puntatore all'elemento successivo del buffer di output.

pubimbue

Consente di configurare le impostazioni locali dell'oggetto di basic_streambuf.

pubseekoff

Chiama seekoff, una funzione virtuale protetta sottoposto a override in una classe derivata.

pubseekpos

Chiama seekpos, una funzione virtuale protetta sottoposto a override in una classe derivata e reimpostare la posizione corrente del puntatore.

pubsetbuf

Chiama setbuf, una funzione virtuale protetta sottoposto a override in una classe derivata.

pubsync

Chiama sincronizzazione, una funzione virtuale protetta sottoposto a override in una classe derivata e aggiorna il flusso esterno associato a questo buffer.

sbumpc

Legge e restituisce l'elemento corrente, spostati il puntatore di flusso.

seekoff

La funzione membro virtuale protetta tenta di modificare le posizioni correnti per i flussi archiviati.

seekpos

La funzione membro virtuale protetta tenta di modificare le posizioni correnti per i flussi archiviati.

setbuf

La funzione protetta membro virtuale esegua un determinato di un'operazione a ciascun buffer del flusso derivato.

setg

Una funzione protetta che ospita il puntatore di _Gbeg in corso, _Gnext nel puntatore seguente e _Gend nel puntatore finale del buffer di input.

setp

Una funzione protetta che ospita il puntatore e _Pend di _Pbeg in corso nel puntatore finale del buffer di output.

sgetc

Restituisce l'elemento corrente senza modificare la posizione nel flusso.

sgetn

Restituisce il numero di elementi lettura.

showmanyc

Funzione membro virtuale protetta che restituisce un conteggio del numero di caratteri che può essere estrattoe dal flusso di input e garantire che il programma non sarà soggetto a un'attesa non definita.

snextc

Legge l'elemento corrente e restituisce l'elemento riportato.

sputbackc

Inserisce char_type nel flusso.

sputc

Inserisce un carattere nel flusso.

sputn

Inserisce una stringa di caratteri nel flusso.

stossc

Move next l'elemento corrente nel flusso.

sungetc

Ottiene un carattere del flusso.

scambio

Scambia i valori in questo oggetto per i valori del parametro specificato dell'oggetto di basic_streambuf.

sincronizzazione

Una funzione virtuale protetta che tenta di sincronizzare i flussi archiviati con tutti i flussi esterni collegati.

uflow

Una funzione virtuale protetta che estrae l'elemento corrente dal flusso di input.

underflow

Una funzione virtuale protetta che estrae l'elemento corrente dal flusso di input.

xsgetn

Una funzione virtuale protetta che estrae gli elementi dal flusso di input.

xsputn

Una funzione virtuale protetta che inserisce gli elementi nel flusso di output.

Operatori

operator=

L'assegnazione dei valori di questo oggetto da un altro oggetto di basic_streambuf.

Requisiti

streambuf <diIntestazione: >

Spazio dei nomi: std

Vedere anche

Riferimenti

Sicurezza dei thread nella libreria standard C++

Programmazione di iostream

Convenzioni di iostream

Altre risorse

membri di basic_streambuf

<streambuf> membri