cpp_generator.h
#include <google/protobuf/compiler/cpp/cpp_generator.h>
namespace google::protobuf::compiler::cpp
Generates C++ code for a given .proto file.
Classes in this file | |
---|---|
CodeGenerator implementation which generates a C++ source file and header. |
class CppGenerator: public CodeGenerator
#include <google/protobuf/compiler/cpp/cpp_generator.h>
namespace google::protobuf::compiler::cpp
CodeGenerator implementation which generates a C++ source file and header.
If you create your own protocol compiler binary and you want it to support C++ output, you can do so by registering an instance of this CodeGenerator with the CommandLineInterface in your main() function.
Members | |
---|---|
enum | Runtime |
| CppGenerator() |
| ~CppGenerator() |
void | set_opensource_runtime(bool opensource) |
void | set_runtime_include_base(const std::string & base) If set to a non-empty string, generated code will do: more... |
implements CodeGenerator | |
virtual bool | Generate(const FileDescriptor * file, const std::string & parameter, GeneratorContext * generator_context, std::string * error) const Generates code for the given proto file, generating one or more files in the given output directory. more... |
virtual uint64_t | GetSupportedFeatures() const Implement this to indicate what features this code generator supports. more... |
enum CppGenerator::Runtime {
kGoogle3,
kOpensource,
kOpensourceGoogle3
}
kGoogle3,
kOpensource,
kOpensourceGoogle3
}
kGoogle3 | Use the internal google3 runtime. |
kOpensource | Use the open-source runtime. |
kOpensourceGoogle3 | Use the open-source runtime with google3 #include paths. We make these absolute to avoid ambiguity, so the runtime will be #included like: |
void CppGenerator::set_runtime_include_base(
const std::string & base)
const std::string & base)
If set to a non-empty string, generated code will do:
/google/protobuf/message.h"
instead of:
This has no effect if opensource_runtime = false.
virtual bool CppGenerator::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
Generates code for the given proto file, generating one or more files in the given output directory.
A parameter to be passed to the generator can be specified on the command line. This is intended to be used to pass generator specific parameters. It is empty if no parameter was given. ParseGeneratorParameter (below), can be used to accept multiple parameters within the single parameter command line flag.
Returns true if successful. Otherwise, sets *error to a description of the problem (e.g. "invalid parameter") and returns false.
virtual uint64_t CppGenerator::GetSupportedFeatures() const
Implement this to indicate what features this code generator supports.
This should be a bitwise OR of features from the Features enum in plugin.proto.