basic_streambuf Class
Describe una clase base abstracta para derivar un búfer de la secuencia, que controla la transmisión de los elementos a y desde una representación específica de una secuencia.
template<class Elem, class Tr = char_traits<Elem> >
class basic_streambuf;
Parámetros
Elem
A char_type.Tr
El carácter traits_type.
Comentarios
La clase de plantilla describe una clase base abstracta para derivar un búfer de la secuencia, que controla la transmisión de los elementos a y desde una representación específica de una secuencia.Un objeto de clase basic_streambuf ayuda a controla un objeto stream con los elementos de tipo Tr, también conocido como char_type, cuyos rasgos de carácter se determinan mediante la clase char_traits, también conocido como traits_type.
Conceptualmente, cada búfer de secuencia controla dos secuencias independientes: uno para las extracciones (entrada) y otro para las inserciones (salida).Una representación específica puede, sin embargo, inaccesible una o ambas de estas secuencias.Normalmente mantiene alguna relación entre las dos secuencias.¿Qué se inserta en la secuencia de salida de un basic_stringbuf<Elem, Tr> objeto, por ejemplo, es lo más adelante extrae de su secuencia de entrada.Cuando se coloca una secuencia de un basic_filebuf<Elem, Tr> objeto, coloque la otra secuencia en tándem.
La interfaz pública para la clase de plantilla basic_streambuf suministra las operaciones que son comunes a todos los búferes de secuencia, sin embargo especializados.La interfaz protegida proporciona las operaciones necesarias para obtener una representación específica de una secuencia para realizar su trabajo.Las funciones de miembro virtual protegido le permiten personalizar el comportamiento de un búfer de secuencia derivada de una representación específica de una secuencia.Cada búfer de secuencia derivada de esta biblioteca describe cómo su especialidad es el comportamiento de sus funciones miembro virtual protegido.El comportamiento predeterminado de la clase base, que a menudo es no hacer nada, se describe en este tema.
Los restantes protección copiar a y desde cualquier almacenamiento de información proporcionado a las transmisiones de búfer a y desde las secuencias de control de las funciones de miembros.Un búfer de entrada, por ejemplo, se caracteriza por:
eback, un puntero al principio del búfer.
gptr, un puntero al siguiente elemento para leer.
egptr, un puntero inmediatamente después del final del búfer.
De forma similar, un búfer de salida se caracteriza por:
pbase, un puntero al principio del búfer.
pptr, un puntero para el elemento siguiente que se va a escribir.
epptr, un puntero inmediatamente después del final del búfer.
Para cualquier búfer, se utiliza el protocolo siguiente:
Si el siguiente puntero es null, no existe ningún búfer.De lo contrario, todos los tres punteros punto de la misma secuencia.Se puede comparar con seguridad por orden.
Un búfer de salida, si el puntero siguiente compara menos que el puntero final, puede almacenar un elemento en la posición de escritura designado por el puntero siguiente.
Para un búfer de entrada, si el puntero siguiente compara menos que el puntero final, se puede leer un elemento en la posición de lectura designado por el puntero siguiente.
Para un búfer de entrada, si el puntero de inicio compara menos que el puntero siguiente puede poner atrás un elemento en la posición de fue designada por el puntero siguiente disminuye.
Cualquiera protegido escribir para una clase derivada de las funciones miembro virtuales basic_streambuf<Elem, Tr> debe cooperar en el mantenimiento de este protocolo.
An object of class basic_streambuf<Elem, Tr> almacena los seis punteros que se ha descrito anteriormente.También almacena un objeto de configuración regional en un objeto de tipo Configuración regional para uso potencial de un búfer de secuencia derivada.
Constructores
Construye un objeto de tipo basic_streambuf. |
Typedefs
Asocia un nombre de tipo con el Elem parámetro de plantilla. |
|
Asocia un nombre de tipo dentro de basic_streambuf de ámbito con el Elem parámetro de plantilla. |
|
Asocia un nombre de tipo dentro de basic_streambuf de ámbito con el Elem parámetro de plantilla. |
|
Asocia un nombre de tipo dentro de basic_streambuf de ámbito con el Elem parámetro de plantilla. |
|
Asocia un nombre de tipo con el Tr parámetro de plantilla. |
Funciones miembro
Una función protegida que devuelve un puntero al principio del búfer de entrada. |
|
Una función protegida que devuelve un puntero inmediatamente después del final del búfer de entrada. |
|
Una función protegida que devuelve un puntero inmediatamente después del final del búfer de salida. |
|
Una función protegida que añade _Count en el siguiente puntero para el búfer de entrada. |
|
Obtiene el basic_streambuf configuración regional del objeto. |
|
Una función protegida que devuelve un puntero al siguiente elemento del búfer de entrada. |
|
A protegido, función virtual que se llama a pubimbue. |
|
Devuelve el número de elementos que están listos para ser leídos desde el búfer. |
|
Una función virtual protegida que se puede llamar cuando se inserta un nuevo carácter en un búfer completo. |
|
Una función miembro virtual protegido que intenta colocar un elemento en la secuencia de entrada, a continuación, convertirlo en el elemento actual (señalado por el puntero siguiente). |
|
Una función protegida que devuelve un puntero al principio del búfer de salida. |
|
Una función protegida que añade count en el siguiente puntero para el búfer de salida. |
|
Una función protegida que devuelve un puntero al siguiente elemento del búfer de salida. |
|
Conjuntos de la basic_streambuf configuración regional del objeto. |
|
Las llamadas seekoff, un protegido función virtual que se reemplaza en una clase derivada. |
|
Las llamadas seekpos, un protegido función virtual que se reemplaza en una clase derivada y restablece la posición actual del puntero. |
|
Las llamadas setbuf, un protegido función virtual que se reemplaza en una clase derivada. |
|
Las llamadas sync, un protegido función virtual que se reemplaza en una clase derivada y actualizaciones de la secuencia externa asociada a este búfer. |
|
Lee y devuelve el elemento actual, moviendo el puntero de una secuencia. |
|
La función miembro virtual protegido intenta modificar las posiciones actuales de las secuencias controladas. |
|
La función miembro virtual protegido intenta modificar las posiciones actuales de las secuencias controladas. |
|
La función miembro virtual protegido realiza un particular de operación para cada búfer de secuencia derivada. |
|
Una función protegida que almacena _Gbeg en el puntero de inicio, _Gnext en el siguiente puntero, y _Gend en el puntero de final para el búfer de entrada. |
|
Una función protegida que almacena _Pbeg en el puntero del principio y _Pend en el puntero de final para el búfer de salida. |
|
Devuelve el elemento actual sin cambiar la posición en la secuencia. |
|
Devuelve el número de elementos de lectura. |
|
Función miembro virtual protegido que devuelve un recuento del número de caracteres que se pueden extraer de la secuencia de entrada y asegúrese de que el programa no estará sujeto a una espera indefinida. |
|
Lee el elemento actual y devuelve el siguiente elemento. |
|
Pone un char_type en la secuencia. |
|
Coloca un carácter en la secuencia. |
|
Coloca una cadena de caracteres en la secuencia. |
|
Pasar el elemento actual en la secuencia. |
|
Obtiene un carácter de la secuencia. |
|
Intercambia los valores de este objeto para los valores de los basic_streambuf parámetro de objeto. |
|
Una función virtual protegida que intenta sincronizar las secuencias controladas con cualquier flujo externo asociado. |
|
Una función virtual protegida que extrae el elemento actual de la secuencia de entrada. |
|
Una función virtual protegida que extrae el elemento actual de la secuencia de entrada. |
|
Una función virtual protegida que extrae los elementos de la secuencia de entrada. |
|
Una función virtual protegida que inserta elementos en la secuencia de salida. |
Operadores
Asigna los valores de este objeto desde otro basic_streambuf objeto. |
Requisitos
Encabezado: <streambuf>
Espacio de nombres: std
Vea también
Referencia
Seguridad para subprocesos de la biblioteca estándar de C++