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
Elem
char_type.Tr
Il carattere traits_type.
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
Crea un oggetto di tipo basic_streambuf. |
Definizioni typedef
Associa un nome del tipo con il parametro di modello di Elem. |
|
Associa un nome di tipo nell'ambito basic_streambuf con il parametro di modello di Elem. |
|
Associa un nome di tipo nell'ambito basic_streambuf con il parametro di modello di Elem. |
|
Associa un nome di tipo nell'ambito basic_streambuf con il parametro di modello di Elem. |
|
Associa un nome del tipo con il parametro di modello di Tr. |
Funzioni del membro
Una funzione protetta che restituisce un puntatore all'inizio del buffer di input. |
|
Una funzione protetta che restituisce un'esperienza del puntatore alla fine del buffer di input. |
|
Una funzione protetta che restituisce un'esperienza del puntatore alla fine del buffer di output. |
|
Una funzione protetta che aggiunge _Count al puntatore seguente per il buffer di input. |
|
Ottiene le impostazioni locali dell'oggetto di basic_streambuf. |
|
Una funzione protetta che restituisce un puntatore all'elemento successivo del buffer di input. |
|
Un metodo virtuale protetto, funzione virtuale denominata da pubimbue. |
|
Restituisce il numero di elementi che è pronto per essere letta dal buffer. |
|
Una funzione virtuale protetta che possa essere chiamato quando un nuovo carattere viene inserito in un buffer completo. |
|
Una funzione membro virtuale protetta che tenta di riportare un elemento del flusso di input, le rende l'elemento corrente (puntato il puntatore seguente). |
|
Una funzione protetta che restituisce un puntatore all'inizio del buffer di output. |
|
Una funzione protetta che aggiunge count al puntatore seguente per il buffer di output. |
|
Una funzione protetta che restituisce un puntatore all'elemento successivo del buffer di output. |
|
Consente di configurare le impostazioni locali dell'oggetto di basic_streambuf. |
|
Chiama seekoff, una funzione virtuale protetta sottoposto a override in una classe derivata. |
|
Chiama seekpos, una funzione virtuale protetta sottoposto a override in una classe derivata e reimpostare la posizione corrente del puntatore. |
|
Chiama setbuf, una funzione virtuale protetta sottoposto a override in una classe derivata. |
|
Chiama sincronizzazione, una funzione virtuale protetta sottoposto a override in una classe derivata e aggiorna il flusso esterno associato a questo buffer. |
|
Legge e restituisce l'elemento corrente, spostati il puntatore di flusso. |
|
La funzione membro virtuale protetta tenta di modificare le posizioni correnti per i flussi archiviati. |
|
La funzione membro virtuale protetta tenta di modificare le posizioni correnti per i flussi archiviati. |
|
La funzione protetta membro virtuale esegua un determinato di un'operazione a ciascun buffer del flusso derivato. |
|
Una funzione protetta che ospita il puntatore di _Gbeg in corso, _Gnext nel puntatore seguente e _Gend nel puntatore finale del buffer di input. |
|
Una funzione protetta che ospita il puntatore e _Pend di _Pbeg in corso nel puntatore finale del buffer di output. |
|
Restituisce l'elemento corrente senza modificare la posizione nel flusso. |
|
Restituisce il numero di elementi lettura. |
|
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. |
|
Legge l'elemento corrente e restituisce l'elemento riportato. |
|
Inserisce char_type nel flusso. |
|
Inserisce un carattere nel flusso. |
|
Inserisce una stringa di caratteri nel flusso. |
|
Move next l'elemento corrente nel flusso. |
|
Ottiene un carattere del flusso. |
|
Scambia i valori in questo oggetto per i valori del parametro specificato dell'oggetto di basic_streambuf. |
|
Una funzione virtuale protetta che tenta di sincronizzare i flussi archiviati con tutti i flussi esterni collegati. |
|
Una funzione virtuale protetta che estrae l'elemento corrente dal flusso di input. |
|
Una funzione virtuale protetta che estrae l'elemento corrente dal flusso di input. |
|
Una funzione virtuale protetta che estrae gli elementi dal flusso di input. |
|
Una funzione virtuale protetta che inserisce gli elementi nel flusso di output. |
Operatori
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++