#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 & )
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) Modifica para AnnotationColetaror::AddAnnotation. |
virtual void | AddAnnotationNew(Annotation & a) Modifica para AnnotationColetaror::AddAnnotation. |
explicit AnnotationProtoCollector::AnnotationProtoCollector(
AnnotationProto * annotation_proto)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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.