Go to the documentation of this file.
65 has_bit_field_count_(0),
67 has_extension_ranges_(
descriptor->extension_range_count() > 0) {
76 int primitiveCount = 0;
106 printer->
Print(
"[global::System.ObsoleteAttribute]\n");
111 if (this->
options()->serializable) {
112 printer->
Print(
"[global::System.SerializableAttribute]\n");
117 std::map<string, string> vars;
127 "$access_level$ sealed partial class $class_name$ : ");
130 printer->
Print(vars,
"pb::IExtendableMessage<$class_name$>");
133 printer->
Print(vars,
"pb::IMessage<$class_name$>");
135 printer->
Print(
" {\n");
141 "private static readonly pb::MessageParser<$class_name$> _parser = new pb::MessageParser<$class_name$>(() => new $class_name$());\n");
144 "private pb::UnknownFieldSet _unknownFields;\n");
148 printer->
Print(vars,
"internal pb::ExtensionSet<$class_name$> _extensions;\n");
150 printer->
Print(vars,
"private pb::ExtensionSet<$class_name$> _extensions;\n");
157 printer->
Print(
"private int _hasBits$i$;\n",
"i",
StrCat(
i));
164 "public static pb::MessageParser<$class_name$> Parser { get { return _parser; } }\n\n");
178 "public static pbr::MessageDescriptor Descriptor {\n"
179 " get { return $descriptor_accessor$; }\n"
185 "pbr::MessageDescriptor pb::IMessage.Descriptor {\n"
186 " get { return Descriptor; }\n"
194 "public $class_name$() {\n"
195 " OnConstruction();\n"
197 "partial void OnConstruction();\n\n");
208 "/// <summary>Field number for the \"$field_name$\" field.</summary>\n"
209 "public const int $field_constant_name$ = $index$;\n",
210 "field_name", fieldDescriptor->
name(),
213 std::unique_ptr<FieldGeneratorBase> generator(
215 generator->GenerateMembers(printer);
216 printer->
Print(
"\n");
226 "private object $name$_;\n"
227 "/// <summary>Enum of possible cases for the \"$original_name$\" oneof.</summary>\n"
228 "public enum $property_name$OneofCase {\n");
230 printer->
Print(
"None = 0,\n");
233 printer->
Print(
"$field_property_name$ = $index$,\n",
238 printer->
Print(
"}\n");
243 "private $property_name$OneofCase $name$Case_ = $property_name$OneofCase.None;\n");
247 "public $property_name$OneofCase $property_name$Case {\n"
248 " get { return $name$Case_; }\n"
253 "public void Clear$property_name$() {\n"
254 " $name$Case_ = $property_name$OneofCase.None;\n"
267 "public TValue GetExtension<TValue>(pb::Extension<$class_name$, TValue> extension) {\n"
268 " return pb::ExtensionSet.Get(ref _extensions, extension);\n"
270 "public pbc::RepeatedField<TValue> GetExtension<TValue>(pb::RepeatedExtension<$class_name$, TValue> extension) {\n"
271 " return pb::ExtensionSet.Get(ref _extensions, extension);\n"
273 "public pbc::RepeatedField<TValue> GetOrRegisterExtension<TValue>(pb::RepeatedExtension<$class_name$, TValue> extension) {\n"
274 " return pb::ExtensionSet.GetOrRegister(ref _extensions, extension);\n"
276 "public void SetExtension<TValue>(pb::Extension<$class_name$, TValue> extension, TValue value) {\n"
277 " pb::ExtensionSet.Set(ref _extensions, extension, value);\n"
279 "public bool HasExtension<TValue>(pb::Extension<$class_name$, TValue> extension) {\n"
280 " return pb::ExtensionSet.Has(ref _extensions, extension);\n"
282 "public void ClearExtension<TValue>(pb::Extension<$class_name$, TValue> extension) {\n"
283 " pb::ExtensionSet.Clear(ref _extensions, extension);\n"
285 "public void ClearExtension<TValue>(pb::RepeatedExtension<$class_name$, TValue> extension) {\n"
286 " pb::ExtensionSet.Clear(ref _extensions, extension);\n"
294 "#region Nested types\n"
295 "/// <summary>Container for nested types declared in the $class_name$ message type.</summary>\n");
297 printer->
Print(
"public static partial class Types {\n");
320 "#region Extensions\n"
321 "/// <summary>Container for extensions for other messages declared in the $class_name$ message type.</summary>\n");
323 printer->
Print(
"internal static partial class Extensions {\n");
326 std::unique_ptr<FieldGeneratorBase> generator(
328 generator->GenerateExtensionCode(printer);
338 printer->
Print(
"}\n");
339 printer->
Print(
"\n");
358 std::map<string, string> vars;
363 "public $class_name$($class_name$ other) : this() {\n");
366 printer->
Print(
"_hasBits$i$ = other._hasBits$i$;\n",
"i",
StrCat(
i));
371 std::unique_ptr<FieldGeneratorBase> generator(
373 generator->GenerateCloningCode(printer);
381 printer->
Print(vars,
"switch (other.$property_name$Case) {\n");
389 "case $property_name$OneofCase.$field_property_name$:\n");
391 generator->GenerateCloningCode(printer);
392 printer->
Print(
"break;\n");
396 printer->
Print(
"}\n\n");
400 "_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);\n");
403 "_extensions = pb::ExtensionSet.Clone(other._extensions);\n");
407 printer->
Print(
"}\n\n");
412 "public $class_name$ Clone() {\n"
413 " return new $class_name$(this);\n"
421 std::map<string, string> vars;
428 "public override bool Equals(object other) {\n"
429 " return Equals(other as $class_name$);\n"
434 "public bool Equals($class_name$ other) {\n"
435 " if (ReferenceEquals(other, null)) {\n"
438 " if (ReferenceEquals(other, this)) {\n"
443 std::unique_ptr<FieldGeneratorBase> generator(
445 generator->WriteEquals(printer);
448 printer->
Print(
"if ($property_name$Case != other.$property_name$Case) return false;\n",
453 "if (!Equals(_extensions, other._extensions)) {\n"
459 " return Equals(_unknownFields, other._unknownFields);\n"
466 "public override int GetHashCode() {\n"
470 std::unique_ptr<FieldGeneratorBase> generator(
472 generator->WriteHash(printer);
475 printer->
Print(
"hash ^= (int) $name$Case_;\n",
480 "if (_extensions != null) {\n"
481 " hash ^= _extensions.GetHashCode();\n"
485 "if (_unknownFields != null) {\n"
486 " hash ^= _unknownFields.GetHashCode();\n"
490 printer->
Print(
"}\n\n");
494 "public override string ToString() {\n"
495 " return pb::JsonFormatter.ToDiagnosticString(this);\n"
502 "public void WriteTo(pb::CodedOutputStream output) {\n");
507 std::unique_ptr<FieldGeneratorBase> generator(
509 generator->GenerateSerializationCode(printer);
515 "if (_extensions != null) {\n"
516 " _extensions.WriteTo(output);\n"
522 "if (_unknownFields != null) {\n"
523 " _unknownFields.WriteTo(output);\n"
533 "public int CalculateSize() {\n");
535 printer->
Print(
"int size = 0;\n");
537 std::unique_ptr<FieldGeneratorBase> generator(
539 generator->GenerateSerializedSizeCode(printer);
544 "if (_extensions != null) {\n"
545 " size += _extensions.CalculateSize();\n"
550 "if (_unknownFields != null) {\n"
551 " size += _unknownFields.CalculateSize();\n"
554 printer->
Print(
"return size;\n");
556 printer->
Print(
"}\n\n");
563 std::map<string, string> vars;
569 "public void MergeFrom($class_name$ other) {\n");
572 "if (other == null) {\n"
578 std::unique_ptr<FieldGeneratorBase> generator(
580 generator->GenerateMergingCode(printer);
587 printer->
Print(vars,
"switch (other.$property_name$Case) {\n");
594 "case $property_name$OneofCase.$field_property_name$:\n");
597 generator->GenerateMergingCode(printer);
598 printer->
Print(
"break;\n");
602 printer->
Print(
"}\n\n");
606 printer->
Print(
"pb::ExtensionSet.MergeFrom(ref _extensions, other._extensions);\n");
611 "_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);\n");
614 printer->
Print(
"}\n\n");
618 printer->
Print(
"public void MergeFrom(pb::CodedInputStream input) {\n");
622 "while ((tag = input.ReadTag()) != 0) {\n"
635 " if (!pb::ExtensionSet.TryMergeFieldFrom(ref _extensions, input)) {\n"
636 " _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);\n"
642 " _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);\n"
655 if (
field->is_packable()) {
657 "case $packed_tag$:\n",
665 printer->
Print(
"case $tag$: {\n",
"tag",
StrCat(tag));
667 std::unique_ptr<FieldGeneratorBase> generator(
669 generator->GenerateParsingCode(printer);
670 printer->
Print(
"break;\n");
672 printer->
Print(
"}\n");
675 printer->
Print(
"}\n");
677 printer->
Print(
"}\n");
679 printer->
Print(
"}\n\n");
bool CompareFieldNumbers(const FieldDescriptor *d1, const FieldDescriptor *d2)
void Print(const std::map< std::string, std::string > &variables, const char *text)
std::string GetFieldConstantName(const FieldDescriptor *field)
void GenerateCloningCode(io::Printer *printer)
string StrCat(const AlphaNum &a, const AlphaNum &b)
void WriteGeneratedCodeAttributes(io::Printer *printer)
int nested_type_count() const
const Descriptor * containing_type() const
std::string full_class_name()
void AddSerializableAttribute(io::Printer *printer)
GLsizei const GLchar *const * string
const std::vector< const FieldDescriptor * > & fields_by_number()
void GenerateFreezingCode(io::Printer *printer)
const std::string & name() const
const Descriptor * descriptor_
void Generate(io::Printer *printer)
const FieldDescriptor * field(int index) const
bool IsProto2(const FileDescriptor *descriptor)
void GenerateMessageSerializationMethods(io::Printer *printer)
const MessageOptions & options() const
void GenerateFrameworkMethods(io::Printer *printer)
const FieldDescriptor * field(int index) const
const OneofDescriptor * oneof_decl(int index) const
bool IsDescriptorProto(const FileDescriptor *descriptor)
FieldGeneratorBase * CreateFieldGeneratorInternal(const FieldDescriptor *descriptor)
int oneof_decl_count() const
#define GOOGLE_LOG(LEVEL)
int extension_count() const
const EnumDescriptor * enum_type(int index) const
const FieldDescriptor * extension(int index) const
void Generate(io::Printer *printer)
std::string GetPropertyName(const FieldDescriptor *descriptor)
const FieldDescriptor * field
void WriteMessageDocComment(io::Printer *printer, const Descriptor *message)
uint GetGroupEndTag(const Descriptor *descriptor)
const Descriptor * nested_type(int index) const
int enum_type_count() const
std::vector< const FieldDescriptor * > fields_by_number_
std::string GetClassName(const Descriptor *descriptor)
const std::string & name() const
std::string class_access_level()
bool IsNullable(const FieldDescriptor *descriptor)
bool IsMapEntryMessage(const Descriptor *descriptor)
const EnumOptions & options() const
const Options * options()
bool HasNestedGeneratedTypes()
const std::string & name() const
const FileDescriptor * file() const
void AddDeprecatedFlag(io::Printer *printer)
MessageGenerator(const Descriptor *descriptor, const Options *options)
const OneofDescriptor * containing_oneof() const
int GetPresenceIndex(const FieldDescriptor *descriptor)
std::string UnderscoresToCamelCase(const std::string &input, bool cap_next_letter, bool preserve_period)
const Descriptor * descriptor_
void GenerateMergingMethods(io::Printer *printer)
FieldGeneratorBase * CreateFieldGenerator(const FieldDescriptor *descriptor, int presenceIndex, const Options *options)
bool has_extension_ranges_
std::string GetReflectionClassName(const FileDescriptor *descriptor)
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:49