Partilhar via


basic_streambuf Class

Descreve uma classe base abstrata para derivar um buffer de fluxo, que controla a transmissão dos elementos em uma representação específica de um fluxo.

template<class Elem, class Tr = char_traits<Elem> >
   class basic_streambuf;

Parâmetros

Comentários

A classe de modelo descreve uma classe base abstrata para derivar um buffer de fluxo, que controla a transmissão dos elementos em uma representação específica de um fluxo.Um objeto da classe basic_streambuf ajuda a controlar um fluxo com elementos do tipo Tr, também conhecido como char_type, cujas características de caractere são determinadas pela classe char_traits, também conhecido como traits_type.

Cada buffer de fluxo controles conceitualmente dois fluxos independentes: um para extrações (entrada) e outro para inserções (saída).Uma representação específica pode, Entretanto, fazer um ou ambos esses fluxos inacessível.Normalmente, ele mantém alguma relação entre dois fluxos.Inserir no fluxo de saída de um basic_stringbuf<Elem, Tr> objeto, por exemplo, é o que mais tarde extrair de seu fluxo de entrada.Ao posicionar um fluxo de um basic_filebuf<Elem, Tr> objeto, posicione o fluxo em tandem.

A interface pública para a classe de modelo basic_streambuf fornece as operações que são comuns a todos os buffers de fluxo, porém especializados.Interface protegida fornece operações necessárias para uma representação específica de um fluxo para fazer seu trabalho.As funções de membro virtual protegido permitem adaptar o comportamento de um buffer de fluxo derivado de uma representação específica de um fluxo.Cada buffer de fluxo derivado nesta biblioteca descreve como o comportamento de suas funções de membro virtual protegido é especializada.O comportamento padrão para a classe base, que costuma fazer nada, é descrito neste tópico.

O restante protegido o controle de funções de membro copiar para e de qualquer armazenamento fornecido para transmissões de buffer para e de fluxos.Por exemplo, o buffer de entrada é caracterizado por:

  • eback, um ponteiro para o início do buffer.

  • gptr, um ponteiro para o próximo elemento de leitura.

  • egptr, um ponteiro apenas após o final do buffer.

Da mesma forma, um buffer de saída é caracterizado por:

  • pbase, um ponteiro para o início do buffer.

  • pptr, um ponteiro para o próximo elemento de gravação.

  • epptr, um ponteiro apenas após o final do buffer.

Nenhum buffer é usado o seguinte protocolo:

  • Se o próximo ponteiro for null, nenhum buffer existe.Caso contrário, todos os ponteiros de três ponto a mesma seqüência.Eles podem ser comparados com segurança para a ordem.

  • Para um buffer de saída, o ponteiro seguinte compara menor que o ponteiro final, você pode armazenar um elemento na posição de gravação designado pelo próximo ponteiro.

  • Para um buffer de entrada, o ponteiro seguinte compara menor que o ponteiro final, você pode ler um elemento na posição de leitura designado pelo próximo ponteiro.

  • Para um buffer de entrada, se o ponteiro de início compara menor que o ponteiro próximo, você pode colocar novamente um elemento na posição putback designada pelo ponteiro próximo diminuído.

Qualquer protegido funções membro virtual gravar para uma classe derivada de basic_streambuf<Elem, Tr> deve cooperar na manutenção desse protocolo.

An object of class basic_streambuf<Elem, Tr> armazena ponteiros de seis descritos anteriormente.Ele também armazena um objeto de localidade em um objeto do tipo localidade para uso potencial por um buffer de fluxo derivado.

9h24a8cd.collapse_all(pt-br,VS.110).gifConstrutores

basic_streambuf

Constrói um objeto do tipo basic_streambuf.

9h24a8cd.collapse_all(pt-br,VS.110).gifTypedefs

char_type

Associa um nome de tipo com o Elem parâmetro do modelo.

int_type

Associa um nome de tipo de basic_streambuf escopo com o Elem parâmetro do modelo.

off_type

Associa um nome de tipo de basic_streambuf escopo com o Elem parâmetro do modelo.

pos_type

Associa um nome de tipo de basic_streambuf escopo com o Elem parâmetro do modelo.

traits_type

Associa um nome de tipo com o Tr parâmetro do modelo.

9h24a8cd.collapse_all(pt-br,VS.110).gifFunções de membro

eback

Uma função protegida que retorna um ponteiro para o início do buffer de entrada.

egptr

Uma função protegida que retorna um ponteiro apenas após o final do buffer de entrada.

epptr

Uma função protegida que retorna um ponteiro apenas após o final do buffer de saída.

gbump

Uma função protegida que adiciona _Count para o próximo ponteiro para o buffer de entrada.

getloc

Obtém o basic_streambuf localidade do objeto.

gptr

Uma função protegida que retorna um ponteiro para o próximo elemento do buffer de entrada.

imbue

Protegido por uma função virtual chamada por pubimbue.

in_avail

Retorna o número de elementos que estão prontos para serem lidos do buffer.

estouro

Uma função virtual protegida que pode ser chamada quando um novo caractere é inserido em um buffer cheio.

pbackfail

Uma função de membro virtual protegido que tenta colocar novamente um elemento no fluxo de entrada, em seguida, tornar o elemento atual (indicado pelo ponteiro próximo).

pbase

Uma função protegida que retorna um ponteiro para o início do buffer de saída.

pbump

Uma função protegida que adiciona count para o próximo ponteiro para o buffer de saída.

pptr

Uma função protegida que retorna um ponteiro para o próximo elemento do buffer de saída.

pubimbue

Conjuntos de basic_streambuf localidade do objeto.

pubseekoff

Chamadas seekoff, uma função virtual é substituída em uma classe derivada de protegido.

pubseekpos

Chamadas seekpos, um protegido de função virtual que é substituída em uma classe derivada e redefine a posição atual do ponteiro.

pubsetbuf

Chamadas setbuf, uma função virtual é substituída em uma classe derivada de protegido.

pubsync

Chamadas sync, um protegido de função virtual que é substituída em uma classe derivada e atualiza o fluxo externo associado a esse buffer.

sbumpc

Lê e retorna o elemento atual, movendo o ponteiro de fluxo.

seekoff

A função de membro virtual protegido tenta alterar posições atuais para fluxos controlados.

seekpos

A função de membro virtual protegido tenta alterar posições atuais para fluxos controlados.

setbuf

A função de membro virtual protegido realiza uma determinada operação para cada buffer de fluxo derivado.

setg

Uma função protegida que armazena _Gbeg no ponteiro de início, _Gnext no próximo ponteiro, e _Gend no ponteiro final para o buffer de entrada.

setp

Uma função protegida que armazena _Pbeg no ponteiro de início e _Pend no ponteiro final para o buffer de saída.

sgetc

Retorna o elemento atual sem alterar a posição no fluxo.

sgetn

Retorna o número de elementos de leitura.

showmanyc

Função de membro virtual protegido que retorna uma contagem do número de caracteres que podem ser extraídos do fluxo de entrada e garantir que o programa não estará sujeito a uma espera indefinida.

snextc

Lê o elemento atual e retorna o elemento a seguir.

sputbackc

Coloca um char_type no fluxo.

sputc

Coloca um caractere no fluxo.

sputn

Coloca uma seqüência de caracteres no fluxo.

stossc

Mover após o elemento atual no fluxo.

sungetc

Obtém um caractere de fluxo.

troca

Troca os valores nesse objeto para os valores no fornecida basic_streambuf parâmetro de objeto.

sincronização

Uma função virtual protegida que tenta sincronizar fluxos controlados com quaisquer fluxos externos associados.

uflow

Uma função virtual protegida que extrai o elemento atual do fluxo de entrada.

estouro negativo

Uma função virtual protegida que extrai o elemento atual do fluxo de entrada.

xsgetn

Uma função virtual protegida que extrai os elementos do fluxo de entrada.

xsputn

Uma função virtual protegida que insere elementos no fluxo de saída.

9h24a8cd.collapse_all(pt-br,VS.110).gifOperadores

operador =

Atribui os valores deste objeto de outro basic_streambuf objeto.

Requisitos

Cabeçalho: <streambuf>

Namespace: std

Consulte também

Referência

Segurança do thread na biblioteca C++ padrão

iostream de programação

Convenções de iostreams

Outros recursos

os membros do basic_streambuf

<streambuf> Membros