Compartir a través de


basic_streambuf (Clase)

Describe una clase base abstracta para derivar un búfer de secuencia, que controla la transmisión de 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

Comentarios

La clase de plantilla describe una clase base abstracta para derivar un búfer de secuencia, que controla la transmisión de elementos a y desde una representación específica de una secuencia. Un objeto de ayuda de basic_streambuf de la clase controla una secuencia con los elementos de Trescrito, también conocidos como char_type, cuyos rasgos de carácter se determinan mediante la clase char_traits, también conocido como traits_type.

Cada búfer de secuencia controla conceptual dos secuencias independientes: uno para las extracciones (entrada) y uno para las inserciones (salida). Una representación concreta puede, sin embargo, crear una o en ambas secuencias inaccesibles. Mantiene normalmente algún relación entre las dos secuencias. Qué se inserta en el flujo de salida de basic_stringbuf<Elem, objeto> de Tr, por ejemplo, es lo que se extraen posterior del flujo de entrada. Cuando coloca una secuencia de basic_filebuf<Elem, objeto> de Tr, puede colocar la otra secuencia en tándem.

La interfaz pública fuentes de basic_streambuf de la clase de plantilla que las operaciones que son comunes a toda la secuencia almacenan en búfer, al menos especializado. Las fuentes protegidas de interfaz que las operaciones necesarios para una representación específica de una secuencia realizar su trabajo. Las funciones virtuales protegidas miembro permiten personalizar el comportamiento de un búfer derivado de la secuencia para una representación específica de una secuencia. Cada búfer derivado de la secuencia en esta biblioteca describe cómo especial el comportamiento de las funciones virtuales protegidas del miembro. El comportamiento predeterminado para la clase base, que a menudo no hacer nada, se describe en este tema.

Restantes las funciones protegidas miembro controlan copiar a y desde cualquier almacenamiento proporcionado a las transmisiones de búfer a y desde flujos. Un búfer de entrada, por ejemplo, se caracteriza por:

  • eback, un puntero al principio del búfer.

  • gptr, un puntero al elemento siguiente a la lectura.

  • egptr, un último de puntero simplemente el fin del búfer.

Igualmente, un búfer de salida se caracteriza por:

  • pbase, un puntero al principio del búfer.

  • pptr, un puntero al elemento siguiente a escribir.

  • epptr, un último de puntero simplemente el fin del búfer.

Para cualquier búfer, se utiliza el protocolo siguiente:

  • Si el puntero siguiente es null, ningún búfer existe. Si no, el punto de tres punteros en la misma secuencia. Pueden compararse con seguridad para el pedido.

  • Para un búfer de salida, si el puntero siguiente compara menos que el puntero de fin, puede almacenar un elemento en la posición de escritura designada por el puntero siguiente.

  • Para un búfer de entrada, si el puntero siguiente compara menos que el puntero de fin, puede leer un elemento en la posición de lectura indica el puntero siguiente.

  • Para un búfer de entrada, si el puntero de principio a menos que el puntero siguiente, puede colocar la reproducción que un elemento en la posición de putback que el puntero siguiente disminuido.

Cualquier función virtual protegida de miembro escribir para una clase derivada de basic_streambuf<Elem, Tr> debe cooperar en mantener este protocolo.

Un objeto de clase basic_streambuf<Elem, Tr> almacena los seis punteros descritos previamente. También almacena un objeto de la configuración regional en un objeto de configuración regional escrito para el uso potencial por un búfer derivado de la secuencia.

Constructores

basic_streambuf

Construye un objeto de tipo basic_streambuf.

Typedefs

char_type

Asocia un nombre de tipo al parámetro de plantilla de Elem .

int_type

Asocia un nombre de tipo dentro del ámbito de basic_streambuf al parámetro de plantilla de Elem .

off_type

Asocia un nombre de tipo dentro del ámbito de basic_streambuf al parámetro de plantilla de Elem .

pos_type

Asocia un nombre de tipo dentro del ámbito de basic_streambuf al parámetro de plantilla de Elem .

traits_type

Asocia un nombre de tipo al parámetro de plantilla de Tr .

Funciones miembro

eback

Una función protegida que devuelve un puntero al inicio del búfer de entrada.

egptr

Una función protegida que devuelve un último de puntero simplemente el fin del búfer de entrada.

epptr

Una función protegida que devuelve un último de puntero simplemente el fin del búfer de salida.

gbump

Una función protegida que agrega _Count el puntero siguiente para el búfer de entrada.

getloc

Obtiene la configuración regional del objeto de basic_streambuf .

gptr

Una función protegida que devuelve un puntero al elemento siguiente del búfer de entrada.

imbuya

Una función protegida, virtual denominada por pubimbue.

in_avail

Devuelve el número de elementos que están listos para ser leído desde el búfer.

desbordamiento

Una función virtual protegida que puede llamar cuando un nuevo carácter se incrusta en un búfer completo.

pbackfail

Una función virtual protegida de miembro que intentan colocar la reproducción de un elemento en el flujo de entrada, se le hace que el elemento actual (indicado por el puntero siguiente).

pbase

Una función protegida que devuelve un puntero al principio del búfer de salida.

pbump

Una función protegida que agrega count el puntero siguiente para el búfer de salida.

pptr

Una función protegida que devuelve un puntero al elemento siguiente del búfer de salida.

pubimbue

Establece la configuración regional del objeto de basic_streambuf .

pubseekoff

Llama a seekoff, una función virtual protegida que se invalide en una clase derivada.

pubseekpos

Llama a seekpos, una función virtual protegida que se invalide en una clase derivada y restablece la posición actual del puntero.

pubsetbuf

Llama a setbuf, una función virtual protegida que se invalide en una clase derivada.

pubsync

Llama a sincronización, una función virtual protegida que se invalide en una clase derivada y actualiza la secuencia externa asociada a este búfer.

sbumpc

Lee y devuelven el elemento actual, al mover el puntero de secuencia.

seekoff

La función virtual protegida de miembro intenta modificar los cargos actuales para las secuencias controladas.

seekpos

La función virtual protegida de miembro intenta modificar los cargos actuales para las secuencias controladas.

setbuf

La función virtual protegida de miembro realiza un detalle de la operación a cada búfer derivado de la secuencia.

setg

Una función protegida que almacena el puntero de _Gbeg al principio, _Gnext en el puntero siguiente, y _Gend en el puntero de fin del búfer de entrada.

setp

Una función protegida que almacena el puntero y _Pend de _Pbeg el principio del puntero de fin del búfer de salida.

sgetc

Devuelve el elemento actual sin cambiar la posición en la secuencia.

sgetn

Devuelve el número de elementos.

showmanyc

Función virtual protegida de miembro que devuelve un recuento del número de caracteres que se extraen del flujo de entrada y garantizar que el programa no estará bajo una espera definida.

snextc

Lee el elemento actual y devuelve el siguiente elemento.

sputbackc

Coloca char_type en la secuencia.

sputc

Coloca un carácter en la secuencia.

sputn

Coloca una cadena de caracteres de la secuencia.

stossc

Pase el elemento actual de la secuencia.

sungetc

Obtiene un carácter de la secuencia.

swap

Cambie los valores de este objeto por los valores del parámetro de objeto proporcionado de basic_streambuf .

sincronización

Una función virtual protegida que intenta sincronizar las secuencias controladas con cualquier secuencia externa asociada.

uflow

Una función virtual protegida que extrae el elemento actual del flujo de entrada.

subdesbordamiento

Una función virtual protegida que extrae el elemento actual del flujo de entrada.

xsgetn

Una función virtual protegida que extrae los elementos del flujo de entrada.

xsputn

Una función virtual protegida que inserta elementos en el flujo de salida.

Operadores

operator=

Asigna los valores de este objeto de otro objeto de basic_streambuf .

Requisitos

streambuf <deEncabezado: >

Espacio de nombres: std

Vea también

Referencia

Seguridad para subprocesos en la biblioteca estándar de C++

Programación con iostream

Convenciones de iostreams

Otros recursos

miembros de basic_streambuf

miembros de <streambuf>