Go to the documentation of this file.
35 #ifndef GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_H__
36 #define GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_H__
43 #include <google/protobuf/compiler/cpp/cpp_field.h>
44 #include <google/protobuf/compiler/cpp/cpp_helpers.h>
45 #include <google/protobuf/compiler/cpp/cpp_message_layout_helper.h>
46 #include <google/protobuf/compiler/cpp/cpp_options.h>
63 class ExtensionGenerator;
65 class MessageGenerator {
69 const std::map<std::string, std::string>& vars,
70 int index_in_file_messages,
const Options&
options,
71 MessageSCCAnalyzer* scc_analyzer);
76 std::vector<std::unique_ptr<EnumGenerator>>* enum_generators,
77 std::vector<std::unique_ptr<ExtensionGenerator>>* extension_generators);
156 int cached_has_bits_index);
177 std::vector<bool> already_processed,
178 bool copy_constructor)
const;
220 std::map<std::string, std::string>
variables_;
231 #endif // GOOGLE_PROTOBUF_COMPILER_CPP_MESSAGE_H__
std::vector< const EnumGenerator * > enum_generators_
FieldGeneratorMap field_generators_
std::vector< const FieldDescriptor * > optimized_order_
std::unique_ptr< MessageLayoutHelper > message_layout_helper_
std::unique_ptr< ParseFunctionGenerator > parse_function_generator_
void GenerateInlineMethods(io::Printer *printer)
bool GenerateParseTable(io::Printer *printer, size_t offset, size_t aux_offset)
void GenerateByteSize(io::Printer *printer)
GRPC_CUSTOM_PRINTER Printer
std::vector< int > inlined_string_indices_
void GenerateFieldClear(const FieldDescriptor *field, bool is_inline, Formatter format)
size_t InlinedStringDonatedSize() const
int max_inlined_string_index_
void GenerateSourceInProto2Namespace(io::Printer *printer)
int index_in_file_messages_
const Descriptor * descriptor_
void GenerateSerializeOneofFields(io::Printer *printer, const std::vector< const FieldDescriptor * > &fields)
std::vector< const ExtensionGenerator * > extension_generators_
void GenerateClassSpecificMergeFrom(io::Printer *printer)
void GenerateStructors(io::Printer *printer)
int HasWordIndex(const FieldDescriptor *a) const
void GenerateSingularFieldHasBits(const FieldDescriptor *field, Formatter format)
void GenerateClassDefinition(io::Printer *printer)
void GenerateOneofClear(io::Printer *printer)
void GenerateSwap(io::Printer *printer)
void GenerateVerify(io::Printer *printer)
int HasByteIndex(const FieldDescriptor *a) const
size_t HasBitsSize() const
std::vector< int > has_bit_indices_
int GenerateFieldMetadata(io::Printer *printer)
bool SameHasByte(const FieldDescriptor *a, const FieldDescriptor *b) const
void GenerateFieldAccessorDefinitions(io::Printer *printer)
int HasBitIndex(const FieldDescriptor *a) const
void GenerateIsInitialized(io::Printer *printer)
void AddGenerators(std::vector< std::unique_ptr< EnumGenerator >> *enum_generators, std::vector< std::unique_ptr< ExtensionGenerator >> *extension_generators)
std::vector< uint32 > RequiredFieldsBitMask() const
void GenerateConstexprConstructor(io::Printer *printer)
const FieldDescriptor * field
void GenerateClassMethods(io::Printer *printer)
std::pair< size_t, size_t > GenerateOffsets(io::Printer *printer)
std::map< std::string, std::string > variables_
void GenerateFieldAccessorDeclarations(io::Printer *printer)
MessageSCCAnalyzer * scc_analyzer_
void GenerateClear(io::Printer *printer)
void GenerateOneofHasBits(io::Printer *printer)
void GenerateSharedDestructorCode(io::Printer *printer)
void GenerateSerializeOneExtensionRange(io::Printer *printer, const Descriptor::ExtensionRange *range)
void GenerateSerializeWithCachedSizesToArray(io::Printer *printer)
void GenerateCopyFrom(io::Printer *printer)
void GenerateSerializeWithCachedSizesBodyShuffled(io::Printer *printer)
void GenerateArenaDestructorCode(io::Printer *printer)
void GenerateSchema(io::Printer *printer, int offset, int has_offset)
void GenerateConstructorBody(io::Printer *printer, std::vector< bool > already_processed, bool copy_constructor) const
MessageGenerator(const Descriptor *descriptor, const std::map< std::string, std::string > &vars, int index_in_file_messages, const Options &options, MessageSCCAnalyzer *scc_analyzer)
void GenerateSerializeOneField(io::Printer *printer, const FieldDescriptor *field, int cached_has_bits_index)
size_t GenerateParseAuxTable(io::Printer *printer)
void GenerateSerializeWithCachedSizesBody(io::Printer *printer)
static const char descriptor[1336]
void GenerateSharedConstructorCode(io::Printer *printer)
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator)
size_t GenerateParseOffsets(io::Printer *printer)
void GenerateMergeFrom(io::Printer *printer)
void GenerateSerializeWithCachedSizes(io::Printer *printer)
void GenerateOneofMemberHasBits(const FieldDescriptor *field, const Formatter &format)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:05