Condividi tramite


basic_streambuf Class

Viene descritta una classe base astratta per la derivazione di un buffer di flusso, che controlla la trasmissione di elementi da e verso una rappresentazione di un flusso specifica.

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

Parametri

Note

La classe template viene descritta una classe base astratta per la derivazione di un buffer di flusso, che controlla la trasmissione di elementi da e verso una rappresentazione di un flusso specifica.Un oggetto della classe basic_streambuf consente di controllare un flusso con elementi di tipo Tr, noto anche come char_type, con caratteristiche di carattere sono determinate dalla classe char_traits, noto anche come traits_type.

Ogni buffer del flusso è concettualmente controlla due flussi indipendenti: uno per estrazioni (input) e uno per gli inserimenti (output).Una rappresentazione specifica può, tuttavia, rendere uno o entrambi questi flussi inaccessibile.In genere di mantenere una relazione tra i due flussi.Si inserisce nel flusso di output di un basic_stringbuf<Elem, Tr> oggetto, ad esempio, è ciò che è in seguito estrarre dal flusso di input.Quando si posiziona un flusso di un basic_filebuf<Elem, Tr> oggetto, si posiziona un altro flusso in parallelo.

L'interfaccia pubblica per la classe template basic_streambuf fornisce le operazioni che sono comuni a tutti i buffer del flusso, tuttavia specializzati.L'interfaccia protetta fornisce le operazioni necessarie per una rappresentazione di un flusso specifica per funzionare.Le funzioni membro virtuale protetto consentono di personalizzare il comportamento di un buffer di flusso derivata per una rappresentazione di un flusso specifico.Ogni buffer del flusso derivata in questa raccolta viene descritto come è specializzato il comportamento delle sue funzioni membro virtuale protetto.In questo argomento viene descritto il comportamento predefinito della classe base, è spesso per non eseguire alcuna operazione.

Il rimanente, protetto da copia in e da qualsiasi archiviazione fornito per le trasmissioni di buffer a e da flussi di controllo di membri funzioni.Un buffer di input, ad esempio, è caratterizzato da:

  • eback, un puntatore all'inizio del buffer.

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

  • egptr, un puntatore immediatamente successivo 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, un puntatore immediatamente successivo alla fine del buffer.

Per qualsiasi buffer viene utilizzato il protocollo seguente:

  • Se il puntatore del mouse è null, è presente alcun buffer.In caso contrario, tutti e tre i puntatori punto nella stessa sequenza.Essi possono essere confrontate in modo sicuro per ordine.

  • Per un buffer di output se il puntatore successivo confronto minore il puntatore di fine, è possibile memorizzare la posizione di scrittura designato dal puntatore del mouse avanti di un elemento.

  • Per un buffer di input, se il puntatore successivo confronto minore il puntatore di fine, è possibile leggere un elemento in corrispondenza della posizione di lettura designato da puntatore successivo.

  • Per un buffer di input, se il puntatore iniziale Confronta meno di puntatore successiva, è possibile inserire nuovamente un elemento nella posizione putback designata dal puntatore del mouse avanti decrementato.

Qualsiasi protetto funzioni membro virtual è scrivere per una classe derivata da basic_streambuf<Elem, Tr> deve collaborare nella gestione di questo protocollo.

An object of class basic_streambuf<Elem, Tr> memorizza i sei puntatori descritti in precedenza.Memorizza inoltre un oggetto locale in un oggetto di tipo locali per l'utilizzo potenziale da un buffer del flusso derivata.

9h24a8cd.collapse_all(it-it,VS.110).gifCostruttori

basic_streambuf

Costruisce un oggetto di tipo basic_streambuf.

9h24a8cd.collapse_all(it-it,VS.110).gifDefinizioni typedef

char_type

Associa un nome di tipo con il Elem parametro di template.

int_type

Associa un nome di tipo all'interno di basic_streambuf con l'ambito di Elem parametro di template.

off_type

Associa un nome di tipo all'interno di basic_streambuf con l'ambito di Elem parametro di template.

pos_type

Associa un nome di tipo all'interno di basic_streambuf con l'ambito di Elem parametro di template.

traits_type

Associa un nome di tipo con il Tr parametro di template.

9h24a8cd.collapse_all(it-it,VS.110).gifFunzioni membro

eback

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

egptr

Una funzione protetta che restituisce un puntatore immediatamente successivo alla fine del buffer di input.

epptr

Una funzione protetta che restituisce un puntatore immediatamente successivo alla fine del buffer di output.

gbump

Una funzione protetta aggiunge _Count il puntatore successivo per il buffer di input.

getloc

Ottiene il basic_streambuf delle impostazioni internazionali dell'oggetto.

gptr

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

imbue

A protetto, la funzione virtuale chiamata da pubimbue.

in_avail

Restituisce il numero di elementi che sono pronti per essere letti dal buffer.

overflow

Una funzione virtuale protetta che può essere chiamata quando un nuovo carattere viene inserito in un buffer pieno.

pbackfail

Una funzione membro virtuale protetto che tenta di ripristinare un elemento nel flusso di input, quindi rendere l'elemento corrente (a cui fa riferimento il puntatore del mouse).

pbase

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

pbump

Una funzione protetta aggiunge count il puntatore successivo per il buffer di output.

pptr

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

pubimbue

Imposta il basic_streambuf delle impostazioni internazionali dell'oggetto.

pubseekoff

Chiamate seekoff, un protetto di funzione virtuale viene sottoposto a override in una classe derivata.

pubseekpos

Chiamate seekpos, un protetto di funzione virtuale che viene sottoposto a override in una classe derivata e reimposta la posizione corrente del puntatore.

pubsetbuf

Chiamate setbuf, un protetto di funzione virtuale viene sottoposto a override in una classe derivata.

pubsync

Chiamate sync, un protetto di funzione virtuale viene sottoposto a override in una classe derivata e aggiorna il flusso esterno associato a questo buffer.

sbumpc

Legge e restituisce l'elemento corrente, spostando il puntatore del flusso.

seekoff

La funzione membro virtuale protetto tenta di modificare le posizioni correnti per i flussi controllati.

seekpos

La funzione membro virtuale protetto tenta di modificare le posizioni correnti per i flussi controllati.

setbuf

La funzione membro virtuale protetto esegue una particolare operazione per ogni buffer del flusso derivata.

setg

Una funzione protetta che consente di memorizzare _Gbeg nel puntatore all'inizio, _Gnext nel puntatore avanti e _Gend il puntatore di fine per il buffer di input.

setp

Una funzione protetta che consente di memorizzare _Pbeg il puntatore di inizio e _Pend il puntatore di fine per il buffer di output.

sgetc

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

sgetn

Restituisce il numero di elementi letti.

showmanyc

Funzione membro virtuale protetto che restituisce un conteggio del numero di caratteri che possono essere estratti dal flusso di input e assicurarsi che il programma non sarà soggetto a un'attesa illimitata.

snextc

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

sputbackc

Inserisce un char_type nel flusso.

sputc

Inserisce un carattere nel flusso.

sputn

Inserisce una stringa di caratteri nel flusso.

stossc

Proseguire l'elemento corrente nel flusso.

sungetc

Ottiene un carattere dal flusso.

scambio

Scambia i valori in questo oggetto per i valori forniti basic_streambuf oggetto parametro.

sincronizzazione

Una funzione virtuale protetta che tenta di sincronizzare i flussi controllati con i flussi esterni associati.

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 consente di estrarre gli elementi dal flusso di input.

xsputn

Una funzione virtuale protetta che consente di inserire elementi nel flusso di output.

9h24a8cd.collapse_all(it-it,VS.110).gifOperatori

operator=

Assegna i valori dell'oggetto da un altro basic_streambuf oggetto.

Requisiti

Intestazione: <streambuf>

Spazio dei nomi: std

Vedere anche

Riferimenti

Thread safety della libreria C++ standard

programmazione di iostream

convenzioni di iostream

Altre risorse

membri di basic_streambuf

<streambuf> membri