class InternalMetadata
Defined at line 45 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
This is the representation for messages that support arena allocation. It
uses a tagged pointer to either store the owning Arena pointer, if there are
no unknown fields, or a pointer to a block of memory with both the owning
Arena pointer and the UnknownFieldSet, if there are unknown fields. Besides,
it also uses the tag to distinguish whether the owning Arena pointer is also
used by sub-structure allocation. This optimization allows for
"zero-overhead" storage of the Arena pointer, relative to the above baseline
implementation.
The tagged pointer uses the least two significant bits to disambiguate cases.
It uses bit 0 == 0 to indicate an arena pointer and bit 0 == 1 to indicate a
UFS+Arena-container pointer. Besides it uses bit 1 == 0 to indicate arena
allocation and bit 1 == 1 to indicate heap allocation.
Public Methods
void InternalMetadata ()
Defined at line 47 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
void InternalMetadata (Arena * arena)
Defined at line 48 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
template <typename T>
void Delete ()
Delete will delete the unknown fields only if they weren't allocated on an
arena. Then it updates the flags so that if you call
have_unknown_fields(), it will return false.
It is designed to be used as part of a Message class's destructor call, so
that when control eventually gets to ~InternalMetadata(), we don't need to
check for have_unknown_fields() again.
Defined at line 60 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
Arena * arena ()
Defined at line 67 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
bool have_unknown_fields ()
Defined at line 75 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
void * raw_arena_ptr ()
Defined at line 79 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
template <typename T>
const T & unknown_fields (const T &(*)() default_instance)
Defined at line 84 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
template <typename T>
T * mutable_unknown_fields ()
Defined at line 94 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
template <typename T>
void Swap (InternalMetadata * other)
Defined at line 103 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
void InternalSwap (InternalMetadata *__restrict other)
Defined at line 115 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
template <typename T>
void MergeFrom (const InternalMetadata & other)
Defined at line 121 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h
template <typename T>
void Clear ()
Defined at line 128 of file ../../third_party/protobuf/src/src/google/protobuf/metadata_lite.h