basic_streambuf, classe
Décrit une classe de base abstraite pour dériver une mémoire tampon de flux, qui contrôle la transmission des éléments vers et à partir d'une représentation spécifique d'un flux de données.
template<class Elem, class Tr = char_traits<Elem> >
class basic_streambuf;
Paramètres
Elem
A char_type.Tr
Le caractère traits_type.
Notes
Le modèle de classe décrit une classe de base abstraite pour dériver une mémoire tampon de flux, qui contrôle la transmission des éléments vers et à partir d'une représentation spécifique d'un flux de données. Un objet de class basic_streambuf aide à contrôler un flux de données avec des éléments de type Tr, alias char_type, dont les traits de caractère sont déterminés par la classe char_traits, alias traits_type.
Chaque tampon du flux de contrôle de manière conceptuelle deux flux indépendants: un pour les extractions (entrée) et un pour les insertions (output). Une représentation spécifique peut, toutefois, rendre l'un, ou les deux flux inaccessibles. Elle maintient généralement une certaine relation entre les deux flux de données. Ce que vous insérez dans le flux de sortie d'un objet basic_stringbuf<Elem, Tr> , par exemple, est ce que vous extrayez plus tard de son flux de sortie. Lorsque vous positionnez un flux d'un objet basic_filebuf<Elem, Tr>, vous positionnez l'autre flux de données en tandem.
L'interface publique de la classe de modèle basic_streambuf propose les opérations communes à toutes les mémoires tampons de flux, aussi spécialisées soient elles. L'interface protogée propose les opérations nécessaires à une représentation spécifique d'un flux de données pour effectuer ses tâches. Les fonctions membres virtuelles protégées vous permettent de personnaliser le comportement d'une mémoire tampon de flux dérivée pour une représentation spécifique d'un flux de données. Chaque tampon de flux dérivée de cette bibliothèque explique comment il spécialise le comportement de ses fonctions membres virtuelles protégées. Le comportement par défaut de la classe de base, qui est souvent de ne rien faire, est décrit dans cette rubrique.
Les fonctions membre protégées restantes contrôlent la copie vers et depuis n'importe quel stockage disponible pour mettre des transmissions en mémoire tampon vers et à partir de flux de données. Une mémoire tampon d'entrée, par exemple, se caractérise par :
eback, un pointeur vers le début de la mémoire tampon.
gptr, un pointeur vers l'élément suivant à lire.
egptr, un pointeur immédiatement après la fin de la mémoire tampon.
De même, un tampon de sortie se caractérise par :
pbase, un pointeur vers le début de la mémoire tampon.
pptr, un pointeur vers l'élément suivant à écrire.
epptr, un pointeur immédiatement après la fin de la mémoire tampon.
Pour toute mémoire tampon, le protocole suivant est utilisé:
Si le prochain pointeur est NULL, aucune mémoire tampon n'existe. Sinon, les trois pointers pointent dans la même séquence. Ils peuvent être sans risque comparés pour l'ordre de plan.
Pour une mémoire tampon de sortie, si le prochain pointeur compare moins que le pointeur de fin, vous pouvez stocker un élément à la position d'écriture désignée par le prochain pointeur.
Pour une mémoire tampon d'entrée, si le prochain pointeur compare moins que le pointeur de fin, vous pouvez lire un élément à la position de lecture désignée par le prochain pointeur.
Pour une mémoire tampon d'entrée, si le pointeur de début compare moins que le prochain pointeur, vous pouvez remettre un élément à la position de "putback" indiquée par le prochain pointeur décrémenté.
Toutes les fonctions membre virtuelles protégées que vous écrivez comme classe dérive de basic_streambuf<Elem, Tr> doivent coopérer pour conserver ce protocole.
Un objet de la classe basic_streambuf<Elem, Tr> stocke les six pointeurs précédemment décrits. Il stocke également un objet de paramètres régionaux dans un objet de type locale pour une utilisation potentielle par une tampon de flux dérivé.
Constructeurs
Construit un objet de type basic_streambuf. |
Typedef
Associe un nom de type avec le paramètre de modèle Elem. |
|
Associe un nom de type à l'intérieur de basic_streambuf avec le paramètre de modèle Elem. |
|
Associe un nom de type à l'intérieur de basic_streambuf avec le paramètre de modèle Elem. |
|
Associe un nom de type à l'intérieur de basic_streambuf avec le paramètre de modèle Elem. |
|
Associe un nom de type avec le paramètre de modèle Tr. |
Fonctions membres
Une fonction protégée qui retourne un pointeur vers le début du tampon d'entrée. |
|
Une fonction protégée qui retourne un pointeur immédiatement après la fin de la mémoire tampon d'entrée. |
|
Une fonction protégée qui retourne un pointeur immédiatement après la fin de la mémoire tampon de sortie. |
|
Une fonction protégée qui ajoute _Count au prochain pointeur pour le tampon d'entrée. |
|
Obtient le basic_streambuf des paramètres locaux de l'objet. |
|
Une fonction protégée qui retourne un pointeur vers l'élément suivant de la mémoire tampon d'entrée. |
|
Un protégé, fonction virtuelle appelée par pubimbue. |
|
Retourne le nombre d'éléments prêts à être lus à partir du tampon. |
|
Une fonction virtuelle protégée qui peut être appelée lorsqu'un nouveau caractère est inséré dans une mémoire tampon saturée. |
|
Une fonction membre virtuelle protégée qui tente de remettre un élément dans le flux d'entrée, puis fait de lui l'élément actuel (référencé par le prochain pointeur). |
|
Une fonction protégée qui retourne un pointeur vers le début du tampon de sortie. |
|
Une fonction protégée qui ajoute count au prochain pointeur pour le tampon de sortie. |
|
Une fonction protégée qui retourne un pointeur vers l'élément suivant de la mémoire tampon de sortie. |
|
Fixe le basic_streambuf des paramètres locaux de l'objet. |
|
Appelle seekoff, une fonction virtuelle protégée qui est remplacée dans une classe dérivée. |
|
Appelle seekpos, une fonction virtuelle protégée qui est remplacée dans une classe dérivée et réinitialise l'emplacement actuel du pointeur. |
|
Appelle setbuf,une fonction virtuelle protégée qui est remplacée dans une classe dérivée. |
|
Appelle synchronisation, une fonction virtuelle protégée qui est remplacée dans une classe dérivée et met à jour le flux de données externe associé à cette mémoire tampon. |
|
Lectures et retourne l'élément actuel, déplaçant le pointeur de flux. |
|
La fonction membre virtuelle protégée tente de modifier les positions actuelles pour les flux de données contrôlés. |
|
La fonction membre virtuelle protégée tente de modifier les positions actuelles pour les flux de données contrôlés. |
|
La fonction membre virtuelle protégée exécute une opération particulière à chaque tampon de flux dérivée. |
|
Une fonction protégée qui stocke _Gbeg dans le pointeur du début, _Gnext dans le prochain pointeur, et _Gend dans le pointeur de fin du tampon d'entrée. |
|
Une fonction protégée qui stocke _Pend dans le pointeur du début et _Pbeg dans le pointeur de fin pour le tampon de sortie. |
|
Retourne l'élément actuel sans modifier la position dans le flux de données. |
|
Retourne le nombre d'éléments lus. |
|
Fonction membre virtuelle protégée qui retourne le nombre de caractères qui peuvent être extraits du flux d'entrée et vérifie que le programme n'est pas sujet à une attente indéfinie. |
|
Lit l'élément actuel et retourne l'élément suivant. |
|
Met un char_type dans le flux de données. |
|
Place un caractère dans le flux. |
|
Place une chaîne de caractère dans le flux. |
|
Passe devant l'élément actuel dans le flux de données. |
|
Récupère un caractère du flux . |
|
Échange les valeurs de cet objet avec celles fournies par le paramètre objet basic_streambuf. |
|
Une fonction virtuelle protégée qui tente de synchroniser les flux de données contrôlés avec n'importe quels flux externes associés. |
|
Une fonction virtuelle protégée qui extrait l'élément actuel du flux d'entrée. |
|
Une fonction virtuelle protégée qui extrait l'élément actuel du flux d'entrée. |
|
Une fonction virtuelle protégée qui extrait des éléments du flux d'entrée. |
|
Une fonction virtuelle protégée qui insère des éléments dans le flux de sortie. |
Opérateurs
Affecte les valeurs de cet objet à partir d'un autre objet de basic_streambuf. |
Configuration requise
En-tête: <streambuf>
Espace de noms : std
Voir aussi
Référence
Sécurité des threads dans la bibliothèque standard C++