OBSERVAÇÃO:este site foi descontinuado. O site será desativado após 31 de janeiro de 2023, e o tráfego será redirecionado para o novo site em https://protobuf.dev. Enquanto isso, as atualizações serão feitas apenas para protobuf.dev.

impressora.h

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

#include <google/protobuf/io/printer.h>
namespace google::protobuf::io

Classe de utilitário para gravar texto em um ZeroCopyOutputStream.

Turmas neste arquivo

Registra anotações sobre a saída de uma Printer.
Registra anotações sobre a saída de uma Printer no buffer de protocolo especificado, supondo que o buffer tenha um caminho de mensagem ::Annotation que expõe os campos path, source_file e start e end.

classe AnnotationColetaror

#include <google/protobuf/io/printer.h>
namespace google::protobuf::io

Registra anotações sobre a saída de uma Printer.

Subclasses conhecidas:

Participantes

typedef
std::pair< std::pair< size_t, size_t >, std::string > Annotation
A anotação é um intervalo de deslocamento e um par de payload.
virtual void
AddAnnotation(size_t begin_offset, size_t end_offset, const std::string & file_path, const std::vector< int > & path) = 0
Registra que os bytes em file_path que começam com start_offset e terminam antes de end_offset estão associados ao caminho no estilo SourceCodeInfo.
virtual void
AddAnnotationNew(Annotation & )
TODO(gerbens) Não vejo por que precisamos de virtuais aqui. mais…
virtual
~AnnotationCollector()

virtual void AnnotationCollector::AddAnnotationNew(
        Annotation & )

TODO(gerbens) Não vejo por que precisamos de virtuais aqui.

Basta um vetor de intervalo de pares de payload armazenados em um contexto.

classe de modelo AnnotationProtoColetaror: AnnotationColetaror pública

#include <google/protobuf/io/printer.h>
namespace google::protobuf::io

template <typename >

Registra anotações sobre a saída de uma Printer no buffer de protocolo especificado, supondo que o buffer tenha um caminho de mensagem ::Annotation que expõe os campos path, source_file e start e end.

Participantes

explicit
AnnotationProtoCollector(AnnotationProto * annotation_proto)
anotado_proto é o buffer de protocolo ao qual novas anotações devem ser adicionadas. mais…
virtual void
AddAnnotation(size_t begin_offset, size_t end_offset, const std::string & file_path, const std::vector< int > & path)
virtual void
AddAnnotationNew(Annotation & a)

explicit AnnotationProtoCollector::AnnotationProtoCollector(
        AnnotationProto * annotation_proto)

anotado_proto é o buffer de protocolo ao qual novas anotações devem ser adicionadas.

Ele não pertence ao AnnotationProtoColetaror.

classe Printer

#include <google/protobuf/io/printer.h>
namespace google::protobuf::io

Participantes

Printer(ZeroCopyOutputStream * output, char variable_delimiter)
Cria uma impressora que grava o texto no stream de saída fornecido. mais…
Printer(ZeroCopyOutputStream * output, char variable_delimiter, AnnotationCollector * annotation_collector)
Cria uma impressora que grava o texto no stream de saída fornecido. mais…
~Printer()
template void
Annotate(const char * varname, const SomeDescriptor * descriptor)
Vincule uma variável de substituição emitida pela última chamada a Print para o objeto descrito pelo descritor.
template void
Annotate(const char * begin_varname, const char * end_varname, const SomeDescriptor * descriptor)
Vincule o intervalo de saída definido pelas variáveis de substituição conforme emitido pela última chamada de "Print" ao objeto descrito pelo descritor. mais…
void
Annotate(const char * varname, const std::string & file_name)
Vincule uma variável de substituição emitida pela última chamada para "Print" ao arquivo com o caminho "file_name".
void
Annotate(const char * begin_varname, const char * end_varname, const std::string & file_name)
Vincule o intervalo de saída definido pelas variáveis de substituição conforme emitido pela última chamada para exibir no arquivo com o caminho file_name. mais…
void
Print(const std::map< std::string, std::string > & variables, const char * text)
Exiba o texto depois de aplicar substituições de variáveis. mais…
template void
Print(const char * text, const Args &... args)
Como o primeiro Print(), exceto as substituições são fornecidas como parâmetros.
void
Indent()
Separar o espaço por dois espaços. mais…
void
Outdent()
Reduz o nível de recuo atual em dois espaços ou falha se o nível de recuo é zero.
void
PrintRaw(const std::string & data)
Gravar uma string no buffer de saída. mais…
void
PrintRaw(const char * data)
Grave uma string delimitada por zero para o buffer de saída. mais…
void
WriteRaw(const char * data, int size)
Grave alguns bytes no buffer de saída. mais…
void
FormatInternal(const std::vector< std::string > & args, const std::map< std::string, std::string > & vars, const char * format)
FormatInternal é uma função auxiliar que não deve ser usada diretamente. Em vez disso, use compilador::cpp::Formatter. mais…
bool
failed() const
Verdadeiro se alguma gravação no stream subjacente falhar. mais…

Printer::Printer(
        ZeroCopyOutputStream * output,
        char variable_delimiter)

Cria uma impressora que grava o texto no stream de saída fornecido.

Use o caractere especificado como delimitador para as variáveis.


Printer::Printer(
        ZeroCopyOutputStream * output,
        char variable_delimiter,
        AnnotationCollector * annotation_collector)

Cria uma impressora que grava o texto no stream de saída fornecido.

Use o caractere especificado como delimitador para as variáveis. Se anotado_collector não for nulo, o Impressora fornecerá anotações sobre o código escrito no fluxo. Anotação_collector não é de propriedade da Impressora.


template void Printer::Annotate(
        const char * begin_varname,
        const char * end_varname,
        const SomeDescriptor * descriptor)

Vincule o intervalo de saída definido pelas variáveis de substituição conforme emitido pela última chamada de "Print" ao objeto descrito pelo descritor.

O intervalo começa com o valor de start_varname e termina depois do último caractere do valor substituído por end_varname.


void Printer::Annotate(
        const char * begin_varname,
        const char * end_varname,
        const std::string & file_name)

Vincule o intervalo de saída definido pelas variáveis de substituição conforme emitido pela última chamada para exibir no arquivo com o caminho file_name.

O intervalo começa com o valor de start_varname e termina depois do último caractere do valor substituído por end_varname.


void Printer::Print(
        const std::map< std::string, std::string > & variables,
        const char * text)

Exiba o texto depois de aplicar substituições de variáveis.

Se uma variável específica no texto não for definida, ocorrerá uma falha. As variáveis a serem substituídas são identificadas pelos nomes cercados por caracteres delimitadores (conforme fornecido ao construtor). As vinculações de variáveis são definidas pelo mapa especificado.


void Printer::Indent()

Separar o espaço por dois espaços.

Depois de chamar Indent(), dois espaços serão inseridos no início de cada linha de texto. Indent() pode ser chamado várias vezes para produzir recuos mais profundos.


void Printer::PrintRaw(
        const std::string & data)

Gravar uma string no buffer de saída.

Esse método não procura novas linhas para adicionar recuo.


void Printer::PrintRaw(
        const char * data)

Grave uma string delimitada por zero para o buffer de saída.

Esse método não procura novas linhas para adicionar recuo.


void Printer::WriteRaw(
        const char * data,
        int size)

Grave alguns bytes no buffer de saída.

Esse método não procura novas linhas para adicionar recuo.


void Printer::FormatInternal(
        const std::vector< std::string > & args,
        const std::map< std::string, std::string > & vars,
        const char * format)

FormatInternal é uma função auxiliar que não deve ser usada diretamente. Em vez disso, use compilador::cpp::Formatter.

Essa função foi criada para ser compatível com a formatação de texto usando variáveis nomeadas (por exemplo, "$foo$" de um mapa de pesquisa (vars) e variáveis fornecidas diretamente por argumentos (eq "$1$", que significa o primeiro argumento, que é o elemento de índice zero de args).


bool Printer::failed() const

Verdadeiro se alguma gravação no stream subjacente falhar.

Neste caso, não falhamos apenas porque é uma falha de E/S, não de erro de programação.