Namespaces
Variants

std:: basic_syncbuf

From es.cppreference.net
< cpp ‎ | io
Definido en el encabezado <syncstream>
template <

class CharT,
class Traits = std:: char_traits < CharT > ,
class Allocator = std:: allocator < CharT >

> class basic_syncbuf : public std:: basic_streambuf < CharT, Traits >
(desde C++20)

std::basic_syncbuf es un contenedor para un 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 encapsulado en la destrucción y cuando se solicita explícitamente, de modo que aparezcan como una secuencia contigua de caracteres. Garantiza que no haya carreras de datos ni intercalación de caracteres enviados al búfer encapsulado siempre que todas las demás salidas realizadas al mismo búfer se realicen a través de, posiblemente diferentes, instancias de std::basic_syncbuf .

Implementación típica de std::basic_syncbuf mantiene un puntero al std::basic_streambuf encapsulado, un indicador booleano que muestra si el buffer transmitirá su contenido al buffer encapsulado en sync (flush), un indicador booleano que muestra un flush pendiente cuando la política es no emitir en sync, un buffer interno que utiliza Allocator (como std::string ), y un puntero a un mutex utilizado para sincronizar la emisión entre múltiples hilos que acceden al mismo buffer de flujo encapsulado (estos mutexes pueden estar en una tabla hash con punteros a objetos std::basic_streambuf utilizados como claves).

Como otras clases de streambuf, std::basic_syncbuf normalmente solo se accede a través del stream correspondiente, std::osyncstream , no directamente.

Se proporcionan varios typedefs para tipos de caracteres comunes:

Definido en el encabezado <syncstream>
Tipo Definición
std::syncbuf std :: basic_syncbuf < char >
std::wsyncbuf std :: basic_syncbuf < wchar_t >

Contenidos

Tipos de miembros

Tipo de miembro Definición
char_type CharT
traits_type Traits ; el programa está mal formado si Traits::char_type no es CharT .
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 >

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 basic_syncbuf y emite su buffer interno
(función miembro pública)
transmite atómicamente todo el buffer interno al streambuf envuelto
(función miembro pública)
recupera el puntero al streambuf envuelto
(función miembro pública)
recupera el allocator utilizado por este basic_syncbuf
(función miembro pública)
cambia la política actual de emit-on-sync
(función miembro pública)

Funciones miembro protegidas

emite o registra un flush pendiente, dependiendo de la política actual de emit-on-sync
(función miembro pública)

Funciones no miembro

especializa el algoritmo std::swap
(plantilla de función)

Heredado de std:: basic_streambuf

Tipos de miembros

Tipo de miembro Definición
char_type CharT
traits_type Traits ; el programa está mal formado si Traits::char_type no es CharT .
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 pública virtual de std::basic_streambuf<CharT,Traits> )
Locales
cambia la configuración regional asociada e invoca 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 setbuf ( )
(función miembro pública de std::basic_streambuf<CharT,Traits> )
invoca seekoff ( )
(función miembro pública de std::basic_streambuf<CharT,Traits> )
invoca seekpos ( )
(función miembro pública de std::basic_streambuf<CharT,Traits> )
invoca sync ( )
(función miembro pública de std::basic_streambuf<CharT,Traits> )
Área de obtención
obtiene el número de caracteres inmediatamente disponibles en el área de obtención
(función miembro pública de std::basic_streambuf<CharT,Traits> )
avanza la secuencia de entrada, luego lee un carácter sin avanzar nuevamente
(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 avanza la secuencia
(función miembro pública de std::basic_streambuf<CharT,Traits> )
lee un carácter de la secuencia de entrada sin avanzar la secuencia
(función miembro pública de std::basic_streambuf<CharT,Traits> )
invoca xsgetn ( )
(función miembro pública de std::basic_streambuf<CharT,Traits> )
Área de escritura
escribe un carácter en el área de escritura y avanza el siguiente puntero
(función miembro pública de std::basic_streambuf<CharT,Traits> )
invoca xsputn ( )
(función miembro pública de std::basic_streambuf<CharT,Traits> )
Reinserción
devuelve un carácter a la secuencia de entrada
(función miembro pública de std::basic_streambuf<CharT,Traits> )
mueve el siguiente puntero en la secuencia de entrada hacia atrás una posición
(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 un basic_streambuf object
(función miembro protegida)
(C++11)
intercambia dos objetos basic_streambuf
(función miembro protegida)
Configuraciones Regionales
[virtual]
reacciona a un cambio de la configuración regional asociada
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
Posicionamiento
[virtual]
reemplaza el búfer con un arreglo definido por el usuario, si está permitido
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
reposiciona el siguiente puntero en la secuencia de entrada, secuencia de salida, o ambas, usando direccionamiento relativo
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
reposiciona el siguiente puntero en la secuencia de entrada, secuencia de salida, o ambas usando direccionamiento absoluto
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
sincroniza los búferes con la secuencia de caracteres asociada
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
Obtener área
[virtual]
obtiene el número de caracteres disponibles para entrada en la secuencia de entrada asociada, si se conoce
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
lee caracteres de la secuencia de entrada asociada al área de obtención
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
lee caracteres de la secuencia de entrada asociada al área de obtención y avanza el siguiente puntero
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
lee múltiples caracteres de la secuencia de entrada
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
devuelve un puntero al inicio, carácter actual y el final del área de obtención
(función miembro protegida)
avanza el siguiente puntero en la secuencia de entrada
(función miembro protegida)
reposiciona los punteros de inicio, siguiente y fin de la secuencia de entrada
(función miembro protegida)
Área de put
[virtual]
escribe múltiples caracteres en la secuencia de salida
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
escribe caracteres a la secuencia de salida asociada desde el área de escritura
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
devuelve un puntero al inicio, al carácter actual y al final del área de escritura
(función miembro protegida)
avanza el puntero siguiente de la secuencia de salida
(función miembro protegida)
reposiciona los punteros de inicio, siguiente y fin de la secuencia de salida
(función miembro protegida)
Putback
[virtual]
coloca un carácter de vuelta en la secuencia de entrada, posiblemente modificando la secuencia de entrada
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )

Notas

Macro de prueba de características Valor Std Característica
__cpp_lib_syncbuf 201803L (C++20) Flujo de salida con búfer sincronizado ( std::syncbuf , std::osyncstream ) y manipuladores