#include <google/protobuf/compiler/js/js_generator.h>
namespace google::protobuf::compiler::js
Gera o código JavaScript para um determinado arquivo .proto.
Turmas neste arquivo | |
---|---|
Implementação do CodeGenerator, que gera um arquivo de origem JavaScript e um cabeçalho. |
struct GeneratorOptions
#include <google/protobuf/compiler/js/js_generator.h>
namespace google::protobuf::compiler::js
Participantes | |
---|---|
enum | ImportStyle Qual estilo de importação precisa ser usado. mais… |
enum | OutputMode |
std::string | output_dir Caminho de saída. |
std::string | namespace_prefix Prefixo do namespace. |
bool | binary Ativar compatibilidade com o formato binário? |
enum google::protobuf::compiler::js::GeneratorOptions::ImportStyle | import_style |
bool | add_require_for_enums Adicione uma chamada goog.requires() para cada tipo de enumeração usado. mais... |
bool | testonly Defina esse módulo como somente para teste via goog.setTestOnly(); . |
std::string | library Criar uma biblioteca com o nome <name>_lib.js em vez de um arquivo .js separado por tipo? |
bool | error_on_name_conflict Erro se houver dois tipos que gerariam o mesmo arquivo de saída? |
std::string | extension A extensão a ser usada para nomes de arquivos de saída. |
bool | one_output_file_per_input_file Criar um arquivo de saída separado para cada arquivo de entrada? |
bool | annotate_code Se verdadeiro, devemos anexar anotações como comentários na última linha do arquivo .js gerado. mais… |
| GeneratorOptions() |
bool | ParseFromOptions(const std::vector< std::pair< std::string, std::string > > & options, std::string * error) |
std::string | GetFileNameExtension() const Retorna a extensão de nome de arquivo a ser usada no código gerado. |
OutputMode | output_mode() const Indica como gerar o código gerado com base nas opções fornecidas. |
enum GeneratorOptions::ImportStyle {
kImportClosure,
kImportCommonJs,
kImportCommonJsStrict,
kImportBrowser,
kImportEs6
}
kImportClosure,
kImportCommonJs,
kImportCommonJsStrict,
kImportBrowser,
kImportEs6
}
Qual estilo de importação precisa ser usado.
kImportClose | goog.requires(). |
kImportCommonJs | exige() |
kImportCommonJsStrict | required() sem exportação global |
Navegador de importação k | nenhuma declaração de importação |
kImportEs6 | importar { membro } de '' |
enum GeneratorOptions::OutputMode {
kOneOutputFilePerInputFile,
kOneOutputFilePerSCC,
kEverythingInOneFile
}
kOneOutputFilePerInputFile,
kOneOutputFilePerSCC,
kEverythingInOneFile
}
kOneOutputFilePerInputFile | Crie um arquivo de saída para cada arquivo .proto de entrada. |
kOneOutputFilePerSCC | Criar um arquivo de saída para cada tipo. |
kTudo no arquivo | Coloque tudo em um único arquivo nomeado pela opção da biblioteca. |
bool GeneratorOptions::add_require_for_enums
Adicione uma chamada goog.requires()
para cada tipo de enumeração usado.
Se não for definido, uma declaração direta com goog.forwardDeclare
será produzida.
bool GeneratorOptions::annotate_code
Se verdadeiro, devemos anexar anotações como comentários na última linha do arquivo .js gerado.
Anotações usadas por ferramentas como para fornecer referências cruzadas entre arquivos .js e .proto. As anotações são codificadas como base64 proto da mensagem GeneratedCodeInfo (consulte Descriptor.proto).
classe Generator: CodeGenerator público
#include <google/protobuf/compiler/js/js_generator.h>
namespace google::protobuf::compiler::js
Implementação do CodeGenerator, que gera um arquivo de origem JavaScript e um cabeçalho.
Se você criar seu próprio binário do compilador de protocolo e quiser que ele dê suporte à saída do JavaScript, registre uma instância desse CodeGenerator com o CommandLineInterface na sua função main().
Participantes | |
---|---|
| Generator() |
virtual | ~Generator() |
virtual bool | Generate(const FileDescriptor * file, const std::string & parameter, GeneratorContext * generator_context, std::string * error) const Gera código para o arquivo proto especificado, gerando um ou mais arquivos no diretório de saída fornecido. mais… |
virtual bool | HasGenerateAll() const Ela não é mais usada, mas essa classe faz parte da biblioteca protobuf de código aberto. Por isso, ela precisa continuar mantendo vtables a mesma versão atual da biblioteca. mais… |
virtual bool | GenerateAll(const std::vector< const FileDescriptor * > & files, const std::string & parameter, GeneratorContext * generator_context, std::string * error) const Gera o código para todos os arquivos proto fornecidos. mais… |
virtual uint64 | GetSupportedFeatures() const Implemente isso para indicar quais recursos são compatíveis com esse gerador de código. mais… |
virtual bool Generator::Generate(
const FileDescriptor * file,
const std::string & parameter,
GeneratorContext * generator_context,
std::string * error) const
const FileDescriptor * file,
const std::string & parameter,
GeneratorContext * generator_context,
std::string * error) const
Gera código para o arquivo proto especificado, gerando um ou mais arquivos no diretório de saída fornecido.
Um parâmetro a ser transmitido para o gerador pode ser especificado na linha de comando. Ele deve ser usado para transmitir parâmetros específicos do gerador. Ficará vazio se nenhum parâmetro for fornecido. O ParseGeneratorParameter (abaixo) pode ser usado para aceitar vários parâmetros na sinalização de linha de comando de parâmetro único.
Retornará "true" se for bem-sucedido. Caso contrário, define *error como uma descrição do problema (por exemplo, "parâmetro inválido") e retorna false.
virtual bool Generator::HasGenerateAll() const
Ela não é mais usada, mas essa classe faz parte da biblioteca protobuf de código aberto. Por isso, ela precisa continuar mantendo vtables a mesma versão atual da biblioteca.
Quando os protobufs fazem uma alteração interruptiva da API, o método pode ser removido.
virtual bool Generator::GenerateAll(
const std::vector< const FileDescriptor * > & files,
const std::string & parameter,
GeneratorContext * generator_context,
std::string * error) const
const std::vector< const FileDescriptor * > & files,
const std::string & parameter,
GeneratorContext * generator_context,
std::string * error) const
Gera o código para todos os arquivos proto fornecidos.
AVISO: o design do gerador de código canônico produz um ou dois arquivos de saída por arquivo .proto de entrada, e não queremos incentivar designs alternativos.
Um parâmetro é fornecido conforme transmitido na linha de comando, como em |Generate()| acima.
Retornará "true" se for bem-sucedido. Caso contrário, define *error como uma descrição do problema (por exemplo, "parâmetro inválido") e retorna false.
virtual uint64 Generator::GetSupportedFeatures() const
Implemente isso para indicar quais recursos são compatíveis com esse gerador de código.
Isso deve ser um bit OR de recursos do tipo enumerado em plugin.proto.