std::basic_syncbuf
Definido en el archivo de encabezado <syncstream>
|
||
template< class CharT, |
(desde C++20) | |
std::basic_syncbuf
es un contenedor para std::basic_streambuf (proporcionado en el momento de la construcción como un puntero). Acumula la salida en su propio búfer interno y transmite atómicamente todo su contenido al búfer envuelto en el momento de la destrucción y cuando se solicita explícitamente, de modo que aparecen como una secuencia contigua de caracteres. Garantiza que no hay carreras de datos ni intercalación de caracteres enviados al búfer envuelto siempre que todas las demás salidas realizadas al mismo búfer se realicen a través de instancias, posiblemente diferentes, de std::basic_syncbuf
.
La implementación típica de std::basic_syncbuf
contiene un puntero al std::basic_streambuf envuelto, un indicador booleano que indica si el búfer transmitirá su contenido al búfer envuelto en sincronización (descarga) , un indicador booleano que indica una descarga pendiente cuando la política sea no emitir en sincronización, un búfer interno que utiliza Allocator
(como std::string
) y un puntero a un mutex utilizado para sincronizar la emisión entre varios hilos que acceden al mismo búfer de flujo envuelto (estos mutexes pueden estar en un mapa de dispersión (hash) con punteros a objetos basic_streambuf
utilizados como claves).
Al igual que otras clases de streambuf
, normalmente solo se accede a std::basic_syncbuf
a través del flujo correspondiente, std::osyncstream, no directamente.
También se definen dos especializaciones para tipos de caracteres comunes:
Definido en el archivo de encabezado
<syncstream> | |
Tipo | Definición |
syncbuf
|
basic_syncbuf<char> |
wsyncbuf
|
basic_syncbuf<wchar_t> |
Contenido |
[editar] Tipos miembro
Tipo miembro | Definición |
char_type
|
CharT |
traits_type
|
Traits; el programa está mal formado si Traits::char_type
no es |
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
allocator_type
|
Allocator |
streambuf_type
|
std::basic_streambuf<CharT, Traits> |
[editar] Funciones miembro
Funciones miembro públicas | |
Construye un objeto basic_syncbuf . (función miembro pública) | |
Asigna un objeto basic_syncbuf . (función miembro pública) | |
Intercambia dos objetos basic_syncbuf . (función miembro pública) | |
Destruye el objeto basic_syncbuf y emite su búfer interno. (función miembro pública) | |
Transmite atómicamente todo el búfer interno al streambuf envuelto. (función miembro pública) | |
Obtiene el puntero al streambuf envuelto. (función miembro pública) | |
Obtiene el asignador de memoria usado por este objeto basic_syncbuf . (función miembro pública) | |
Cambia la política de emisión en sincronización actual. (función miembro pública) | |
Funciones miembro protegidas | |
Emite o registra una descarga pendiente, según la política actual de emisión en sincronización. (función miembro pública) |
[editar] Funciones no miembro
Especializa el algoritmo std::swap. (plantilla de función) |
Heredado de std::basic_streambuf
Tipos miembro
Tipo miembro | Definición |
char_type
|
CharT |
traits_type
|
Traits; el programa está mal formado si Traits::char_type
no es |
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
Funciones miembro
[virtual] |
Destruye el objeto basic_streambuf . (función miembro virtual pública de std::basic_streambuf<CharT,Traits> )
|
Configuración regional | |
Invoca a imbue(). (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Obtiene una copia de la configuración regional asociada. (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Posicionamiento | |
Invoca a setbuf(). (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Invoca a seekoff(). (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Invoca a seekpos(). (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Invoca a sync(). (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Área de obtención | |
Obtiene el número de caracteres disponibles de inmediato en la zona de obtención. (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Hace avanzar la secuencia de entrada, entonces lee un carácter sin hacerla avanzar de nuevo. (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
(eliminado en C++17) |
Lee un carácter de la secuencia de entrada y hace avanzar la secuencia. (función miembro pública de std::basic_streambuf<CharT,Traits> )
|
Lee un carácter de la secuencia de entrada sin hacer avanzar la secuencia. (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Invoca a xsgetn(). (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Área de sometimiento | |
Escribe un carácter a la zona de sometimiento y avanza el puntero siguiente. (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Invoca a xsputn(). (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Poner de nuevo | |
Pone un carácter de nuevo en la secuencia de entrada. (función miembro pública de std::basic_streambuf<CharT,Traits> )
| |
Mueve el puntero siguiente en la secuencia de entrada hacia atrás en uno. (función miembro pública de std::basic_streambuf<CharT,Traits> )
|
Funciones miembro protegidas
Construye un objeto basic_streambuf . (función miembro protegida) | |
(C++11) |
Reemplaza a un objeto basic_streambuf . (función miembro protegida) |
(C++11) |
Intercambia dos objetos de tipo basic_streambuf . (función miembro protegida) |
Configuración regional | |
[virtual] |
Cambia la configuración regional asociada. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
Posicionamiento | |
[virtual] |
Reemplaza el búfer con un array definido por el usuario, si se permite. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
[virtual] |
Reposiciona el puntero siguiente en la secuencia de entrada, la secuencia de salida, o ambas, mediante el direccionamiento relativo. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
[virtual] |
Reposiciona el puntero siguiente en la secuencia de entrada, la secuencia de salida, o ambas utilizando el direccionamiento absoluto. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
[virtual] |
Sincroniza los búferes con la secuencia de caracteres asociada. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
Área de obtención | |
[virtual] |
Si se conoce, obtiene el número de caracteres disponibles para la entrada en la secuencia de entrada asociada. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
[virtual] |
Lee los caracteres de la secuencia de entrada asociada a la zona de obtención. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
[virtual] |
Lee los caracteres de la secuencia de entrada asociada a la zona de obtención y avanza el puntero siguiente. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
[virtual] |
Lee varios caracteres de la secuencia de entrada. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
Devuelve un puntero al comienzo, el carácter actual y el final de la zona de obtención. (función miembro protegida) | |
Avanza el puntero siguiente en la secuencia de entrada. (función miembro protegida) | |
Reposiciona los punteros: al comienzo, siguiente y final de la secuencia de entrada. (función miembro protegida) | |
Área de sometimiento | |
[virtual] |
Escribe varios caracteres en la secuencia de salida. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
[virtual] |
Escribe los caracteres del área de colocación a la secuencia de salida asociada. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|
Devuelve un puntero al comienzo, el carácter actual y el final del área de sometimiento. (función miembro protegida) | |
Avanza el puntero siguiente de la secuencia de salida. (función miembro protegida) | |
Reposiciona los punteros: al comienzo, siguiente y final de la secuencia de salida. (función miembro protegida) | |
Poner de nuevo | |
[virtual] |
Pone un carácter de nuevo en la secuencia de entrada, posiblemente modificando tal secuencia. (función miembro virtual protegida de std::basic_streambuf<CharT,Traits> )
|