Go to the documentation of this file.
47 string ReinterpretCast(
const string&
type,
const string& expression,
48 bool implicit_weak_field) {
49 if (implicit_weak_field) {
50 return "reinterpret_cast< " +
type +
" >(" + expression +
")";
57 const Options&
options,
bool implicit_weak,
58 std::map<std::string, std::string>* variables) {
61 (*variables)[
"casted_member"] = ReinterpretCast(
62 (*variables)[
"type"] +
"*", (*variables)[
"name"] +
"_", implicit_weak);
63 (*variables)[
"type_default_instance"] =
65 (*variables)[
"type_reference_function"] =
70 (*variables)[
"stream_writer"] =
71 (*variables)[
"declared_type"] +
77 (*variables)[
"release_name"] =
79 (*variables)[
"full_name"] =
descriptor->full_name();
100 format(
"::$proto_ns$::MessageLite* $name$_;\n");
102 format(
"$type$* $name$_;\n");
110 "$deprecated_attr$const $type$& ${1$$name$$}$() const;\n"
111 "$deprecated_attr$$type$* ${1$$release_name$$}$();\n"
112 "$deprecated_attr$$type$* ${1$mutable_$name$$}$();\n"
113 "$deprecated_attr$void ${1$set_allocated_$name$$}$"
114 "($type$* $name$);\n",
118 "$deprecated_attr$void "
119 "${1$unsafe_arena_set_allocated_$name$$}$(\n"
120 " $type$* $name$);\n"
121 "$deprecated_attr$$type$* ${1$unsafe_arena_release_$name$$}$();\n",
131 "void $classname$::unsafe_arena_set_allocated_$name$(\n"
132 " $type$* $name$) {\n"
135 " if (GetArenaNoVirtual() == nullptr) {\n"
138 " $name$_ = $name$;\n"
144 " // @@protoc_insertion_point(field_unsafe_arena_set_allocated"
154 "inline const $type$& $classname$::$name$() const {\n"
155 " const $type$* p = $casted_member$;\n"
156 " // @@protoc_insertion_point(field_get:$full_name$)\n"
157 " return p != nullptr ? *p : *reinterpret_cast<const $type$*>(\n"
158 " &$type_default_instance$);\n"
162 "inline $type$* $classname$::$release_name$() {\n"
163 " // @@protoc_insertion_point(field_release:$full_name$)\n"
164 "$type_reference_function$"
166 " $type$* temp = $casted_member$;\n");
169 " if (GetArenaNoVirtual() != nullptr) {\n"
170 " temp = ::$proto_ns$::internal::DuplicateIfNonNull(temp);\n"
174 " $name$_ = nullptr;\n"
180 "inline $type$* $classname$::unsafe_arena_release_$name$() {\n"
182 "@@protoc_insertion_point(field_unsafe_arena_release:$full_name$)\n"
183 "$type_reference_function$"
185 " $type$* temp = $casted_member$;\n"
186 " $name$_ = nullptr;\n"
192 "inline $type$* $classname$::mutable_$name$() {\n"
194 " if ($name$_ == nullptr) {\n"
195 " auto* p = CreateMaybeMessage<$type$>(GetArenaNoVirtual());\n");
197 format(
" $name$_ = reinterpret_cast<::$proto_ns$::MessageLite*>(p);\n");
199 format(
" $name$_ = p;\n");
203 " // @@protoc_insertion_point(field_mutable:$full_name$)\n"
204 " return $casted_member$;\n"
210 "inline void $classname$::set_allocated_$name$($type$* $name$) {\n"
211 " ::$proto_ns$::Arena* message_arena = GetArenaNoVirtual();\n");
212 format(
" if (message_arena == nullptr) {\n");
215 " delete reinterpret_cast< ::$proto_ns$::MessageLite*>($name$_);\n");
217 format(
" delete $name$_;\n");
227 " ::$proto_ns$::Arena* submessage_arena =\n"
229 "reinterpret_cast<::$proto_ns$::MessageLite*>($name$)->GetArena();\n");
231 format(
" ::$proto_ns$::Arena* submessage_arena = nullptr;\n");
234 " ::$proto_ns$::Arena* submessage_arena =\n"
235 " ::$proto_ns$::Arena::GetArena($name$);\n");
238 " if (message_arena != submessage_arena) {\n"
239 " $name$ = ::$proto_ns$::internal::GetOwnedMessage(\n"
240 " message_arena, $name$, submessage_arena);\n"
247 format(
" $name$_ = reinterpret_cast<MessageLite*>($name$);\n");
249 format(
" $name$_ = $name$;\n");
252 " // @@protoc_insertion_point(field_set_allocated:$full_name$)\n"
261 "static const ::$proto_ns$::MessageLite& $name$("
262 "const $classname$* msg);\n"
263 "static ::$proto_ns$::MessageLite* mutable_$name$("
264 "$classname$* msg);\n");
266 format(
"static const $type$& $name$(const $classname$* msg);\n");
281 "const ::$proto_ns$::MessageLite& $classname$::_Internal::$name$(\n"
282 " const $classname$* msg) {\n"
283 " if (msg->$name$_ != nullptr) {\n"
284 " return *msg->$name$_;\n"
285 " } else if (&$type_default_instance$ != nullptr) {\n"
286 " return *reinterpret_cast<const ::$proto_ns$::MessageLite*>(\n"
287 " &$type_default_instance$);\n"
290 "*::$proto_ns$::internal::ImplicitWeakMessage::default_instance();\n"
295 "::$proto_ns$::MessageLite*\n"
296 "$classname$::_Internal::mutable_$name$($classname$* msg) {\n");
298 format(
" msg->$set_hasbit$\n");
301 " if (msg->$name$_ == nullptr) {\n"
302 " if (&$type_default_instance$ == nullptr) {\n"
303 " msg->$name$_ = ::$proto_ns$::Arena::CreateMessage<\n"
304 " ::$proto_ns$::internal::ImplicitWeakMessage>(\n"
305 " msg->GetArenaNoVirtual());\n"
307 " msg->$name$_ = reinterpret_cast<const "
308 "::$proto_ns$::MessageLite*>(\n"
309 " &$type_default_instance$)->New("
310 "msg->GetArenaNoVirtual());\n"
313 " return msg->$name$_;\n"
317 "::$proto_ns$::MessageLite*\n"
318 "$classname$::_Internal::mutable_$name$($classname$* msg) {\n");
320 format(
" msg->$set_hasbit$\n");
323 " if (msg->$name$_ == nullptr) {\n"
324 " if (&$type_default_instance$ == nullptr) {\n"
326 "new ::$proto_ns$::internal::ImplicitWeakMessage;\n"
329 "reinterpret_cast<const ::$proto_ns$::MessageLite*>(\n"
330 " &$type_default_instance$)->New();\n"
333 " return msg->$name$_;\n"
342 "$classname$::_Internal::$name$(const $classname$* msg) {\n"
343 " return *msg->$field_member$;\n"
354 "if (GetArenaNoVirtual() == nullptr && $name$_ != nullptr) {\n"
357 "$name$_ = nullptr;\n");
359 format(
"if ($name$_ != nullptr) $name$_->Clear();\n");
370 "if (GetArenaNoVirtual() == nullptr && $name$_ != nullptr) {\n"
373 "$name$_ = nullptr;\n");
376 "$DCHK$($name$_ != nullptr);\n"
377 "$name$_->Clear();\n");
385 "_Internal::mutable_$name$(this)->CheckTypeAndMergeFrom(\n"
386 " _Internal::$name$(&from));\n");
388 format(
"mutable_$name$()->$type$::MergeFrom(from.$name$());\n");
394 format(
"swap($name$_, other->$name$_);\n");
405 format(
"if (this != internal_default_instance()) ");
407 format(
"delete $name$_;\n");
413 format(
"$name$_ = nullptr;\n");
420 "if (from.has_$name$()) {\n"
421 " $name$_ = new $type$(*from.$name$_);\n"
423 " $name$_ = nullptr;\n"
432 "DO_(::$proto_ns$::internal::WireFormatLite::ReadMessage(\n"
433 " input, _Internal::mutable_$name$(this)));\n");
436 "DO_(::$proto_ns$::internal::WireFormatLite::ReadMessage(\n"
437 " input, mutable_$name$()));\n");
440 "DO_(::$proto_ns$::internal::WireFormatLite::ReadGroup(\n"
441 " $number$, input, mutable_$name$()));\n");
449 "::$proto_ns$::internal::WireFormatLite::Write$stream_writer$(\n"
450 " $number$, _Internal::$name$(this), output);\n");
457 "target = ::$proto_ns$::internal::WireFormatLite::\n"
458 " InternalWrite$declared_type$ToArray(\n"
459 " $number$, _Internal::$name$(this), target);\n");
465 "total_size += $tag_size$ +\n"
466 " ::$proto_ns$::internal::WireFormatLite::$declared_type$Size(\n"
467 " *$field_member$);\n");
485 "void $classname$::set_allocated_$name$($type$* $name$) {\n"
486 " ::$proto_ns$::Arena* message_arena = GetArenaNoVirtual();\n"
487 " clear_$oneof_name$();\n"
494 " ::$proto_ns$::Arena* submessage_arena =\n"
496 "reinterpret_cast<::$proto_ns$::MessageLite*>($name$)->GetArena();\n");
498 format(
" ::$proto_ns$::Arena* submessage_arena = nullptr;\n");
501 " ::$proto_ns$::Arena* submessage_arena =\n"
502 " ::$proto_ns$::Arena::GetArena($name$);\n");
505 " if (message_arena != submessage_arena) {\n"
506 " $name$ = ::$proto_ns$::internal::GetOwnedMessage(\n"
507 " message_arena, $name$, submessage_arena);\n"
509 " set_has_$name$();\n"
510 " $field_member$ = $name$;\n"
512 " // @@protoc_insertion_point(field_set_allocated:$full_name$)\n"
520 "inline $type$* $classname$::$release_name$() {\n"
521 " // @@protoc_insertion_point(field_release:$full_name$)\n"
522 " if (has_$name$()) {\n"
523 " clear_has_$oneof_name$();\n"
524 " $type$* temp = $field_member$;\n");
527 " if (GetArenaNoVirtual() != nullptr) {\n"
528 " temp = ::$proto_ns$::internal::DuplicateIfNonNull(temp);\n"
532 " $field_member$ = nullptr;\n"
540 "inline const $type$& $classname$::$name$() const {\n"
541 " // @@protoc_insertion_point(field_get:$full_name$)\n"
542 " return has_$name$()\n"
543 " ? *$field_member$\n"
544 " : *reinterpret_cast< $type$*>(&$type_default_instance$);\n"
549 "inline $type$* $classname$::unsafe_arena_release_$name$() {\n"
550 " // @@protoc_insertion_point(field_unsafe_arena_release"
552 " if (has_$name$()) {\n"
553 " clear_has_$oneof_name$();\n"
554 " $type$* temp = $field_member$;\n"
555 " $field_member$ = nullptr;\n"
561 "inline void $classname$::unsafe_arena_set_allocated_$name$"
562 "($type$* $name$) {\n"
566 " clear_$oneof_name$();\n"
568 " set_has_$name$();\n"
569 " $field_member$ = $name$;\n"
571 " // @@protoc_insertion_point(field_unsafe_arena_set_allocated:"
577 "inline $type$* $classname$::mutable_$name$() {\n"
578 " if (!has_$name$()) {\n"
579 " clear_$oneof_name$();\n"
580 " set_has_$name$();\n"
581 " $field_member$ = CreateMaybeMessage< $type$ >(\n"
582 " GetArenaNoVirtual());\n"
584 " // @@protoc_insertion_point(field_mutable:$full_name$)\n"
585 " return $field_member$;\n"
594 "if (GetArenaNoVirtual() == nullptr) {\n"
595 " delete $field_member$;\n"
598 format(
"delete $field_member$;\n");
630 implicit_weak_field_(
640 format(
"::$proto_ns$::RepeatedPtrField< $type$ > $name$_;\n");
647 "$deprecated_attr$$type$* ${1$mutable_$name$$}$(int index);\n"
648 "$deprecated_attr$::$proto_ns$::RepeatedPtrField< $type$ >*\n"
649 " ${1$mutable_$name$$}$();\n"
650 "$deprecated_attr$const $type$& ${1$$name$$}$(int index) const;\n"
651 "$deprecated_attr$$type$* ${1$add_$name$$}$();\n"
652 "$deprecated_attr$const ::$proto_ns$::RepeatedPtrField< $type$ >&\n"
653 " ${1$$name$$}$() const;\n",
661 "inline $type$* $classname$::mutable_$name$(int index) {\n"
663 " // @@protoc_insertion_point(field_mutable:$full_name$)\n"
664 "$type_reference_function$"
665 " return $name$_.Mutable(index);\n"
667 "inline ::$proto_ns$::RepeatedPtrField< $type$ >*\n"
668 "$classname$::mutable_$name$() {\n"
669 " // @@protoc_insertion_point(field_mutable_list:$full_name$)\n"
670 "$type_reference_function$"
671 " return &$name$_;\n"
676 "inline const $type$& $classname$::$name$(int index) const {\n"
677 " // @@protoc_insertion_point(field_get:$full_name$)\n"
678 " return $name$_.InternalCheckedGet(index,\n"
679 " *reinterpret_cast<const $type$*>(&$type_default_instance$));\n"
683 "inline const $type$& $classname$::$name$(int index) const {\n"
684 " // @@protoc_insertion_point(field_get:$full_name$)\n"
685 "$type_reference_function$"
686 " return $name$_.Get(index);\n"
691 "inline $type$* $classname$::add_$name$() {\n"
692 " // @@protoc_insertion_point(field_add:$full_name$)\n"
693 " return $name$_.Add();\n"
697 "inline const ::$proto_ns$::RepeatedPtrField< $type$ >&\n"
698 "$classname$::$name$() const {\n"
699 " // @@protoc_insertion_point(field_list:$full_name$)\n"
700 "$type_reference_function$"
710 "CastToBase(&$name$_)->Clear<"
711 "::$proto_ns$::internal::ImplicitWeakTypeHandler<$type$>>();\n");
713 format(
"$name$_.Clear();\n");
722 "CastToBase(&$name$_)->MergeFrom<"
723 "::$proto_ns$::internal::ImplicitWeakTypeHandler<$type$>>(CastToBase("
724 "from.$name$_));\n");
726 format(
"$name$_.MergeFrom(from.$name$_);\n");
733 format(
"CastToBase(&$name$_)->InternalSwap(CastToBase(&other->$name$_));\n");
747 "DO_(::$proto_ns$::internal::WireFormatLite::"
748 "ReadMessage(input, CastToBase(&$name$_)->AddWeak(\n"
749 " reinterpret_cast<const ::$proto_ns$::MessageLite*>(\n"
750 " &$type_default_instance$))));\n");
753 "DO_(::$proto_ns$::internal::WireFormatLite::"
755 " input, add_$name$()));\n");
759 "DO_(::$proto_ns$::internal::WireFormatLite::"
760 "ReadGroup($number$, input, add_$name$()));\n");
768 "for (unsigned int i = 0,\n"
769 " n = static_cast<unsigned int>(this->$name$_size()); i < n; i++) {\n"
770 " ::$proto_ns$::internal::WireFormatLite::Write$stream_writer$(\n"
774 " CastToBase($name$_).Get<"
775 "::$proto_ns$::internal::ImplicitWeakTypeHandler<$type$>>("
776 "static_cast<int>(i)),\n");
778 format(
" this->$name$(static_cast<int>(i)),\n");
789 "for (unsigned int i = 0,\n"
790 " n = static_cast<unsigned int>(this->$name$_size()); i < n; i++) {\n"
791 " target = ::$proto_ns$::internal::WireFormatLite::\n"
792 " InternalWrite$declared_type$ToArray(\n"
793 " $number$, this->$name$(static_cast<int>(i)), target);\n"
802 " unsigned int count = static_cast<unsigned "
803 "int>(this->$name$_size());\n");
806 "total_size += $tag_size$UL * count;\n"
807 "for (unsigned int i = 0; i < count; i++) {\n"
809 " ::$proto_ns$::internal::WireFormatLite::$declared_type$Size(\n");
812 " CastToBase($name$_).Get<"
813 "::$proto_ns$::internal::ImplicitWeakTypeHandler<$type$>>("
814 "static_cast<int>(i)));\n");
816 format(
" this->$name$(static_cast<int>(i)));\n");
~RepeatedMessageFieldGenerator()
void GenerateSwappingCode(io::Printer *printer) const
void GenerateAccessorDeclarations(io::Printer *printer) const
void GenerateMergeFromCodedStream(io::Printer *printer) const
void GenerateSerializeWithCachedSizes(io::Printer *printer) const
void GenerateMergingCode(io::Printer *printer) const
const bool implicit_weak_field_
void GenerateClearingCode(io::Printer *printer) const
void GenerateMergeFromCodedStream(io::Printer *printer) const
void SetCommonFieldVariables(const FieldDescriptor *descriptor, std::map< std::string, std::string > *variables, const Options &options)
void GenerateMessageClearingCode(io::Printer *printer) const
void GenerateSerializeWithCachedSizesToArray(io::Printer *printer) const
void GenerateSwappingCode(io::Printer *printer) const
void GenerateInternalAccessorDefinitions(io::Printer *printer) const
std::string ReferenceFunctionName(const Descriptor *descriptor, const Options &options)
MessageOneofFieldGenerator(const FieldDescriptor *descriptor, const Options &options, MessageSCCAnalyzer *scc_analyzer)
const FieldDescriptor * descriptor_
void GeneratePrivateMembers(io::Printer *printer) const
void GenerateNonInlineAccessorDefinitions(io::Printer *printer) const
MessageFieldGenerator(const FieldDescriptor *descriptor, const Options &options, MessageSCCAnalyzer *scc_analyzer)
std::map< std::string, std::string > variables_
void GenerateSerializeWithCachedSizesToArray(io::Printer *printer) const
void SetMessageVariables(const FieldDescriptor *descriptor, std::map< std::string, std::string > *variables, const Options &options)
void GenerateCopyConstructorCode(io::Printer *printer) const
void GenerateDestructorCode(io::Printer *printer) const
std::string SafeFunctionName(const Descriptor *descriptor, const FieldDescriptor *field, const std::string &prefix)
const FileDescriptor * file() const
GLint GLint GLsizei GLint GLenum format
bool SupportsArenas(const FileDescriptor *file)
bool IsImplicitWeakField(const FieldDescriptor *field, const Options &options, MessageSCCAnalyzer *scc_analyzer)
std::string FieldMessageTypeName(const FieldDescriptor *field, const Options &options)
std::string QualifiedDefaultInstanceName(const Descriptor *descriptor, const Options &options)
void GenerateConstructorCode(io::Printer *printer) const
bool IsCrossFileMessage(const FieldDescriptor *field)
void GenerateMessageClearingCode(io::Printer *printer) const
void GenerateSerializeWithCachedSizes(io::Printer *printer) const
void GeneratePrivateMembers(io::Printer *printer) const
void GenerateClearingCode(io::Printer *printer) const
void GenerateByteSize(io::Printer *printer) const
void GenerateSwappingCode(io::Printer *printer) const
void GenerateInlineAccessorDefinitions(io::Printer *printer) const
const FileDescriptor * file() const
void GenerateClearingCode(io::Printer *printer) const
~MessageOneofFieldGenerator()
void GenerateInlineAccessorDefinitions(io::Printer *printer) const
const Descriptor * message_type() const
void GenerateNonInlineAccessorDefinitions(io::Printer *printer) const
bool HasFieldPresence(const FileDescriptor *file)
void GenerateDestructorCode(io::Printer *printer) const
void GenerateByteSize(io::Printer *printer) const
RepeatedMessageFieldGenerator(const FieldDescriptor *descriptor, const Options &options, MessageSCCAnalyzer *scc_analyzer)
bool HasFastArraySerialization(const FileDescriptor *file, const Options &options)
void GenerateConstructorCode(io::Printer *printer) const
void GenerateInternalAccessorDeclarations(io::Printer *printer) const
void GenerateMergingCode(io::Printer *printer) const
void GenerateConstructorCode(io::Printer *printer) const
const bool implicit_weak_field_
void GenerateInlineAccessorDefinitions(io::Printer *printer) const
void GenerateAccessorDeclarations(io::Printer *printer) const
void SetCommonOneofFieldVariables(const FieldDescriptor *descriptor, std::map< std::string, std::string > *variables)
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:49