Namespaces

Enumerations

enum class AllocationClient
Name Value
kDefault 0
kArray 1

Defined at line 60 of file ../../third_party/protobuf/src/src/google/protobuf/serial_arena.h

enum class BoundsCheckMessageType
Name Value
kIndex 0
kGe 1
kLe 2

Defined at line 112 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

enum class LazyAnnotation : int8_t
Name Value
kUndefined 0
kLazy 1
kEager 2

Defined at line 114 of file ../../third_party/protobuf/src/src/google/protobuf/extension_set.h

enum class BoundsCheckMode
Name Value
kNoEnforcement 0
kReturnDefault 1
kAbort 2

Defined at line 852 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

Records

Functions

  • uint64_t BSwap64 (uint64_t host_int)

    Defined at line 27 of file ../../third_party/protobuf/src/src/google/protobuf/endian.h

  • template <typename T>
    absl::string_view GetAnyMessageName ()

    Defined at line 40 of file ../../third_party/protobuf/src/src/google/protobuf/any.h

  • uint32_t BSwap32 (uint32_t host_int)

    Defined at line 45 of file ../../third_party/protobuf/src/src/google/protobuf/endian.h

  • uint16_t BSwap16 (uint16_t host_int)

    Defined at line 59 of file ../../third_party/protobuf/src/src/google/protobuf/endian.h

  • template <typename Key, typename T>
    bool AllAreInitialized (const MapFieldLite<Key, T> & field)

    True if IsInitialized() is true for value field in all elements of t. T is

    expected to be message. It's useful to have this helper here to keep the

    protobuf compiler from ever having to emit loops in IsInitialized() methods.

    We want the C++ compiler to inline this or not as it sees fit.

    Defined at line 105 of file ../../third_party/protobuf/src/src/google/protobuf/map_field_lite.h

  • ArenaAlign ArenaAlignAs (size_t align)

    Defined at line 156 of file ../../third_party/protobuf/src/src/google/protobuf/arena_align.h

  • template <size_t align>
    auto ArenaAlignAs ()

    Returns an `ArenaAlignDefault` instance for `align` less than or equal to the

    default alignment, and `AlignAs(align)` for over-aligned values of `align`.

    The purpose is to take advantage of invoking functions accepting a template

    overloaded 'Align align` argument reducing the alignment operations on

    `ArenaAlignDefault` implementations to no-ops.

    Defined at line 183 of file ../../third_party/protobuf/src/src/google/protobuf/arena_align.h

  • template <typename T>
    auto ArenaAlignOf ()

    Returns ArenaAlignAs

    <alignof

    (T)>

    Defined at line 189 of file ../../third_party/protobuf/src/src/google/protobuf/arena_align.h

  • template <typename To, typename From>
    void AssertDownCast (From * from)

    Defined at line 197 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • std::string GetTypeUrl (absl::string_view message_name, absl::string_view type_url_prefix)
  • bool ParseNamedEnum (const EnumDescriptor * descriptor, absl::string_view name, int * value)

    Helper for EnumType_Parse functions: try to parse the string 'name' as

    an enum name of the given type, returning true and filling in value on

    success, or returning false and leaving value unchanged on failure.

  • const std::string & NameOfEnum (const EnumDescriptor * descriptor, int value)

    Just a wrapper around printing the name of a value. The main point of this

    function is not to be inlined, so that you can do this without including

    descriptor.h.

  • void InitializeLazyExtensionSet ()
  • bool IsDescendant (const Message & root, const Message & message)

    Forward-declared from message.h.

  • template <class T>
    ::absl::string_view GetFeatureSetDefaultsData ()

    Forward-declares the function for FeatureSet extensions to make it visible

    to the internal feature helper. It should hold and return serialized

    FeatureSetDefaults data.

  • MessageLite * CloneSlow (Arena * arena, const MessageLite & value)

    Copies the object in the arena.

    Used in the slow path. Out-of-line for lower binary size cost.

  • std::string * CloneSlow (Arena * arena, const std::string & value)
  • bool AbslParseFlagImpl (absl::string_view text, int & e, const EnumDescriptor & desc, std::string & error)

    Runtime implementation for Abseil flag support for enums.

  • std::string AbslUnparseFlagImpl (int e, const EnumDescriptor & desc)
  • void ExtensionSerializer (const MessageLite * extendee, const uint8_t * ptr, uint32_t offset, uint32_t tag, uint32_t has_offset, io::CodedOutputStream * output)
  • void DestroyMessage (const void * message)
  • void DestroyString (const void * s)
  • bool CreateUnknownEnumValues (const FieldDescriptor * field)
  • void AssignDescriptors (const DescriptorTable * table)

    AssignDescriptors() pulls the compiled FileDescriptor from the DescriptorPool

    and uses it to populate all of the global variables which store pointers to

    the descriptor objects. It also constructs the reflection objects. It is

    called the first time anyone calls descriptor() or GetReflection() on one of

    the types defined in the file. AssignDescriptors() is thread-safe.

  • void AssignDescriptorsOnceInnerCall (const DescriptorTable * table)

    As above, but the caller did the call_once call already.

  • template <typename EnumType>
    bool ParseNamedEnum (const EnumDescriptor * descriptor, absl::string_view name, EnumType * value)

    Defined at line 63 of file ../../third_party/protobuf/src/src/google/protobuf/generated_enum_reflection.h

  • void InitProtobufDefaults ()

    Defined at line 76 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename T>
    void StrongReference (const T & var)

    Strongly references the given variable such that the linker will be forced

    to pull in this variable's translation unit.

    Defined at line 83 of file ../../third_party/protobuf/src/src/google/protobuf/stubs/common.h

  • const std::string & GetEmptyString ()

    This used by proto1

    Defined at line 85 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename T>
    bool InternalPackFrom (const T & message, absl::string_view type_url_prefix, std::string * dst_url, std::string * dst_value)

    Packs a message using the given type URL prefix. The type URL will be

    constructed by concatenating the message type's full name to the prefix

    with an optional "/" separator if the prefix doesn't already end with "/".

    For example, both InternalPackFrom(message, "type.googleapis.com") and

    InternalPackFrom(message, "type.googleapis.com/") yield the same result type

    URL: "type.googleapis.com/<message_full_name>".

    Returns false if serializing the message failed.

    Defined at line 85 of file ../../third_party/protobuf/src/src/google/protobuf/any.h

  • const ::absl::Cord & GetEmptyCordAlreadyInited ()

    Defined at line 100 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename Msg>
    bool AllAreInitialized (const RepeatedPtrField<Msg> & t)

    True if IsInitialized() is true for all elements of t. Type is expected

    to be a RepeatedPtrField

    <some

    message type>. It's useful to have this

    helper here to keep the protobuf compiler from ever having to emit loops in

    IsInitialized() methods. We want the C++ compiler to inline this or not

    as it sees fit.

    Defined at line 110 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <class T>
    bool AllAreInitializedWeak (const RepeatedPtrField<T> & t)

    "Weak" variant of AllAreInitialized, used to implement implicit weak fields.

    This version operates on MessageLite to avoid introducing a dependency on the

    concrete message type.

    Defined at line 122 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename T>
    bool FieldHasArenaOffset ()

    Returns true if `T` uses arena offsets instead of holding a copy of the arena

    pointer. This can be deduced if the field's arena representation is not the

    same as the field itself.

    Defined at line 125 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • template <typename T>
    bool HasDeprecatedArenaConstructor ()

    TODO - Some types have a deprecated arena-enabled constructor,

    as we plan to remove it in favor of using arena offsets, but for now Arena

    needs to call it. While the arena constructor exists, we will call the

    `InternalVisibility` override to silence the warning.

    Defined at line 135 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • bool CanMoveWithInternalSwap (Arena * lhs, Arena * rhs)

    Defined at line 156 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • template <typename To, typename From>
    To DownCast (From * f)

    Defined at line 211 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <typename ToRef, typename From>
    ToRef DownCast (From & f)

    Defined at line 217 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <class To>
    To * GetPointerAtOffset (void * message, uint32_t offset)

    Defined at line 226 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

  • template <class To>
    const To * GetConstPointerAtOffset (const void * message, uint32_t offset)

    Defined at line 231 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

  • template <class To>
    const To & GetConstRefAtOffset (const Message & message, uint32_t offset)

    Defined at line 237 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

  • const Message & GetMapEntryValuePrototype (const Message & default_entry)

    Return the prototype message for a Map entry.

    REQUIRES: `default_entry` is a map entry message.

    REQUIRES: mapped_type is of type message.

    Defined at line 300 of file ../../third_party/protobuf/src/src/google/protobuf/map_field.h

  • bool LookUpEnumValue (const EnumEntry * enums, size_t size, absl::string_view name, int * value)

    Looks up a numeric enum value given the string name.

  • int LookUpEnumName (const EnumEntry * enums, const int * sorted_indices, size_t size, int value)

    Looks up an enum name given the numeric value.

  • bool InitializeEnumStrings (const EnumEntry * enums, const int * sorted_indices, size_t size, internal::ExplicitlyConstructed<std::string> * enum_strings)

    Initializes the list of enum names in std::string form.

  • void InitProtobufDefaultsSlow ()
  • bool IsPresent (const void * base, uint32_t hasbit)

    Defined at line 135 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • bool IsOneofPresent (const void * base, uint32_t offset, uint32_t tag)

    Defined at line 141 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename T>
    T * DuplicateIfNonNull (T * message)

    Defined at line 169 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename T>
    T * GetOwnedMessage (Arena * message_arena, T * submessage, Arena * submessage_arena)

    Defined at line 177 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • void OnShutdownDestroyMessage (const void * ptr)

    Destroy (not delete) the message

    Defined at line 189 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • void OnShutdownDestroyString (const std::string * ptr)

    Destroy the string (call std::string destructor)

    Defined at line 193 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename T>
    absl::optional<absl::string_view> RttiTypeName ()

    Looks up the name of `T` via RTTI, if RTTI is available.

    Defined at line 224 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool EnableStableExperiments ()

    Defined at line 272 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool EnableExperimentalMicroString ()

    Defined at line 280 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool ForceInlineStringInProtoc ()

    Defined at line 287 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool ForceEagerlyVerifiedLazyInProtoc ()

    Defined at line 291 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool ForceSplitFieldsInProtoc ()

    Defined at line 295 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool DebugHardenClearOneofMessageOnArena ()

    Returns true if debug hardening for clearing oneof message on arenas is

    enabled.

    Defined at line 305 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool HasAnySanitizer ()

    Defined at line 313 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool PerformDebugChecks ()

    Defined at line 322 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool DebugHardenForceCopyDefaultString ()

    Force copy the default string to a string field so that non-optimized builds

    have harder-to-rely-on address stability.

    Defined at line 333 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool DebugHardenForceCopyInRelease ()

    Defined at line 337 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool DebugHardenForceCopyInSwap ()

    Defined at line 341 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool DebugHardenForceCopyInMove ()

    Defined at line 345 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <const EnumDescriptor* (*descriptor_fn)(), int min_val, int max_val>
    const std::string & NameOfDenseEnum (int v)

    Similar to the routine NameOfEnum, this routine returns the name of an enum.

    Unlike that routine, it allocates, on-demand, a block of pointers to the

    std::string objects allocated by reflection to store the enum names. This

    way, as long as the enum values are fairly dense, looking them up can be

    very fast. This assumes all the enums fall in the range [min_val .. max_val].

    Defined at line 348 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_reflection.h

  • bool DebugHardenForceAllocationOnConstruction ()

    Defined at line 349 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void AssignToString (std::string & dest, const std::string & value, BytesTag )

    Assigns to `dest` the content of `value`, optionally bounded by `size`.

    This overload set is used to implement `set_xxx()` methods for repeated

    string fields in generated code.

    Defined at line 352 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • bool DebugHardenFuzzMessageSpaceUsedLong ()

    Defined at line 353 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void AssignToString (std::string & dest, std::string && value, BytesTag )

    Defined at line 356 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • bool DebugHardenCheckHasBitConsistency ()

    Defined at line 357 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void AssignToString (std::string & dest, const char * value, BytesTag )

    Defined at line 360 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • void AssignToString (std::string & dest, const char * value, std::size_t size)

    Defined at line 364 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • void AssignToString (std::string & dest, const void * value, std::size_t size, BytesTag )

    Defined at line 368 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • void AssertBytesAreReadable (const volatile char * p, int n)

    Reads n bytes from p, if PerformDebugChecks() is true. This allows ASAN to

    detect if a range of memory is not valid when we expect it to be. The

    volatile keyword is necessary here to prevent the compiler from optimizing

    away the memory reads below.

    Defined at line 369 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void AssignToString (std::string & dest, absl::string_view value, BytesTag )

    Defined at line 372 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename Arg, typename... Args>
    void AddToRepeatedPtrField (InternalVisibility visibility, google::protobuf::Arena * arena, google::protobuf::RepeatedPtrField<std::string> & dest, Arg && value, Args... args)

    Adds `value`, optionally bounded by `size`, as the last element of `dest`.

    This overload set is used to implement `add_xxx()` methods for repeated

    string fields in generated code.

    Defined at line 381 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • void AddToRepeatedPtrField (InternalVisibility visibility, google::protobuf::Arena * arena, google::protobuf::RepeatedPtrField<std::string> & dest, std::string && value, BytesTag )

    Defined at line 387 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_util.h

  • template <typename Key, typename T>
    bool AllAreInitialized (const TypeDefinedMapFieldBase<Key, T> & field)

    Defined at line 647 of file ../../third_party/protobuf/src/src/google/protobuf/map_field.h

  • uint8_t * InternalSerializeUnknownMessageSetItemsToArray (const std::string & unknown_fields, uint8_t * target, io::EpsCopyOutputStream * stream)

    Defined at line 847 of file ../../third_party/protobuf/src/src/google/protobuf/wire_format_lite.h

  • size_t ComputeUnknownMessageSetItemsSize (const std::string & unknown_fields)

    Defined at line 854 of file ../../third_party/protobuf/src/src/google/protobuf/wire_format_lite.h

  • template <typename T, bool sign>
    const char * VarintParser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • size_t StringSpaceUsedExcludingSelfLong (const std::string & str)
  • bool ValidateEnum (int value, const uint32_t * data)

    The enum validation format is split in 3 parts:

    - A dense sequence, with start+length

    - A variable size presence bitmap (in increments of 32 bits)

    - A variable size sorted int32_t set for everything else.

    The values are as follows:

    0 - [ sequence start (int16_t) ] | [ sequence size (uint16_t) ]

    <

    <

    16

    1 - [ bitmap size in bits (uint16_t) ] | [ ordered size (uint16_t) ]

    <

    <

    16

    x - [ variable length bitmap ]

    y - [ variable length of int32_t values ]

    where the bitmap starts right after the end of the sequence.

  • std::vector<uint32_t> GenerateEnumData (absl::Span<const int32_t> values)
  • void GenericSwap (MessageLite * lhs, MessageLite * rhs)

    TODO: Remove this once we have a better way to do this.

  • void GenericSwap (Message * lhs, Message * rhs)

    We specialize GenericSwap for non-lite messages to benefit from reflection.

  • void LogIndexOutOfBounds (int index, int size)

    A utility function for logging that doesn't need any template types.

  • void LogIndexOutOfBoundsAndAbort (int64_t index, int64_t size, BoundsCheckMessageType type)

    A utility function for logging that doesn't need any template types. Same as

    LogIndexOutOfBounds, but aborts the program in all cases by logging to FATAL

    instead of DFATAL.

    TODO: Remove preserve_all and add no_return once experiment is

    complete.

  • void MapTestForceDeterministic ()

    See above. Other projects may use "friend" to allow them to call this.

    After SetDefaultSerializationDeterministic() completes, all protocol

    buffer serializations will be deterministic by default. Thread safe.

    However, the meaning of "after" is subtle here: to be safe, each thread

    that wants deterministic serialization by default needs to call

    SetDefaultSerializationDeterministic() or ensure on its own that another

    thread has done so.

  • bool ParseAnyTypeUrl (absl::string_view type_url, std::string * full_type_name)

    Get the proto type name from Any::type_url value. For example, passing

    "type.googleapis.com/rpc.QueryOrigin" will return "rpc.QueryOrigin" in

    *full_type_name. Returns false if the type_url does not have a "/"

    in the type url separating the full type name.

    NOTE: this function is available publicly as a static method on the

    generated message type: google::protobuf::Any::ParseAnyTypeUrl()

  • bool ParseAnyTypeUrl (absl::string_view type_url, std::string * url_prefix, std::string * full_type_name)

    Get the proto type name and prefix from Any::type_url value. For example,

    passing "type.googleapis.com/rpc.QueryOrigin" will return

    "type.googleapis.com/" in *url_prefix and "rpc.QueryOrigin" in

    *full_type_name. Returns false if the type_url does not have a "/" in the

    type url separating the full type name.

  • bool GetAnyFieldDescriptors (const Message & message, const FieldDescriptor ** type_url_field, const FieldDescriptor ** value_field)

    See if message is of type google.protobuf.Any, if so, return the descriptors

    for "type_url" and "value" fields.

  • template <typename T, std::enable_if_t<std::is_integral<T>::value, int> = 0>
    T ReadKey (const void * ptr)

    The value might be of different signedness, so use memcpy to extract it.

    Defined at line 682 of file ../../third_party/protobuf/src/src/google/protobuf/map.h

  • template <typename T, std::enable_if_t<!std::is_integral<T>::value, int> = 0>
    const T & ReadKey (const void * ptr)

    Defined at line 689 of file ../../third_party/protobuf/src/src/google/protobuf/map.h

  • map_index_t Hash (absl::string_view k, void * salt)

    Defined at line 699 of file ../../third_party/protobuf/src/src/google/protobuf/map.h

  • map_index_t Hash (uint64_t k, void * salt)

    Defined at line 703 of file ../../third_party/protobuf/src/src/google/protobuf/map.h

  • template <auto Resolver, typename T>
    Arena * ResolveArena (const T * object)
  • ThreadSafeArenazSampler & GlobalThreadSafeArenazSampler ()

    Returns a global Sampler.

  • void SetThreadSafeArenazMaxSamples (int32_t max)

    Sets a soft max for the number of samples that will be kept.

  • void SetThreadSafeArenazMaxSamplesInternal (int32_t max)
  • template <typename T>
    void StrongPointer (T * var)

    Defined at line 57 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <typename T, T ptr>
    void StrongPointer ()

    Portable fallback. It usually generates a single LEA instruction or

    equivalent.

    Defined at line 90 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <typename T, typename TraitsImpl = MessageTraitsImpl>
    void StrongReferenceToType ()

    Defined at line 95 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool HaveAllocateAtLeastHook ()

    `AllocAtLeastHook` API

    Defined at line 131 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void SetAllocateAtLeastHook (AllocateAtLeastHookFn fn, void * context)

    Defined at line 132 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void * Allocate (size_t size)

    Allocates `size` bytes. This wrapper allows memory allocations to be

    optimized by the compiler since `operator new` is considered observable.

    Defined at line 138 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • SizedPtr AllocateAtLeast (size_t size)

    Allocates at least `size` bytes. This function follows the c++ language

    proposal from D0901R10 (http://wg21.link/D0901R10) and will be implemented

    in terms of the new operator new semantics when available. The allocated

    memory should be released by a call to `SizedDelete` or `::operator delete`.

    Defined at line 152 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void SizedDelete (void * p, size_t size)

    Defined at line 162 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void SizedArrayDelete (void * p, size_t size)

    Defined at line 171 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool PtrIsAtLeast8BAligned ()

    Returns true if pointers are 8B aligned, leaving least significant 3 bits

    available.

    Defined at line 379 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool IsLazyParsingSupported ()

    Defined at line 381 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool IsLittleEndian ()

    Defined at line 387 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool IsBigEndian ()

    Defined at line 393 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <const PrefetchOpts& kOpts, typename T = void, typename U>
    void Prefetch (const U * ptr)

    Prefetches a sequence of `kOpts.num.ToLines()` cache lines to the levels of

    cache specified by `kOpts.locality`, starting at `ptr` base pointer

    furthermore offset by `kOpts.from.ToBytes()` bytes, and optimized for

    `kOpts.mem_op` type of expected memory access.

    The `kOpts` template parameter must be a compile-time constant, which means

    either `inline constexpr` in the global scope or `static constexpr` in a

    function or class.

    When `kOpts.num.unit` or `kOpts.from.unit` is `kObjects`, the `T` template

    parameter must be explicitly specified and `sizeof(T)` must be valid and

    non-zero (i.e. T must be a non-void, complete type): it is used to scale

    `kOpts.num.num` and `kOpts.from.num` to bytes and lines, respectively.

    The `U` template parameter doesn't need to be explicitly specified: it is

    deduced from `ptr` and, if non-void and `T` is also non-void, checked for

    compatibility with `T` to prevent accidental mismatches between the actual

    pointed-to and declared prefetched types.

    WARNING: Do not default `T` to `U` or vice versa: that may hide subtle errors

    at call sites, e.g. when `ptr` points at the base class of the actual object.

    TODO: Simplify definition/usages after C++20 per the bug.

    Defined at line 537 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void Prefetch5LinesFrom7Lines (const void * ptr)

    Prefetch 5 64-byte cache line starting from 7 cache-lines ahead.

    Constants are somewhat arbitrary and pretty aggressive, but were

    chosen to give a better benchmark results. E.g. this is ~20%

    faster, single cache line prefetch is ~12% faster, increasing

    decreasing distance makes results 2-4% worse. Important note,

    prefetch doesn't require a valid address, so it is ok to prefetch

    past the end of message/valid memory. Only insert prefetch once per function.

    Defined at line 571 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void Prefetch5LinesFrom1Line (const void * ptr)

    Prefetch 5 64-byte cache lines starting from 1 cache-line ahead.

    Defined at line 581 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void PrefetchToLocalCache (const void * ptr)

    This trampoline allows calling from codegen without needing a #include to

    absl. It simplifies IWYU and deps.

    Defined at line 592 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void SetThreadSafeArenazConfigListener (ThreadSafeArenazConfigListener l)
  • void SetThreadSafeArenazEnabled (bool enabled)

    Enables or disables sampling for thread safe arenas.

  • void SetThreadSafeArenazEnabledInternal (bool enabled)
  • bool IsThreadSafeArenazEnabled ()

    Returns true if sampling is on, false otherwise.

  • void SetThreadSafeArenazSampleParameter (int32_t rate)

    Sets the rate at which thread safe arena will be sampled.

  • void SetThreadSafeArenazSampleParameterInternal (int32_t rate)
  • size_t ThreadSafeArenazMaxSamples ()

    Returns the max number of samples that will be kept.

  • void SetThreadSafeArenazGlobalNextSample (int64_t next_sample)

    Sets the current value for when arenas should be next sampled.

  • void InternalOutOfLineDeleteMessageLite (MessageLite * message)
  • template <bool alias>
    bool MergeFromImpl (absl::string_view input, MessageLite * msg, const internal::TcParseTableBase * tc_table, MessageLite::ParseFlags parse_flags)
  • template <bool alias>
    bool MergeFromImpl (io::ZeroCopyInputStream * input, MessageLite * msg, const internal::TcParseTableBase * tc_table, MessageLite::ParseFlags parse_flags)
  • template <bool alias>
    bool MergeFromImpl (BoundedZCIS input, MessageLite * msg, const internal::TcParseTableBase * tc_table, MessageLite::ParseFlags parse_flags)
  • template <typename E>
    auto ConvertToPtrIterator (RepeatedPtrIterator<E> it)
  • template <typename T, int kHeapRepHeaderSize>
    int RepeatedFieldLowerClampLimit ()

    Defined at line 81 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • bool ValidateEnumInlined (int value, const uint32_t * data)

    Defined at line 89 of file ../../third_party/protobuf/src/src/google/protobuf/generated_enum_util.h

  • template <size_t N>
    void memswap (char *__restrict a, char *__restrict b)

    Swaps two non-overlapping blocks of memory of size `N`

    Defined at line 93 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • void RuntimeAssertInBounds (int index, int size)

    Defined at line 130 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • template <typename T>
    void arena_delete_object (void * object)

    Defined at line 141 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • void RuntimeAssertInBoundsLE (int64_t value, int64_t limit)

    Defined at line 143 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool CanUseInternalSwap (Arena * lhs, Arena * rhs)

    Defined at line 145 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • void RuntimeAssertInBoundsGE (int64_t value, int64_t limit)

    Defined at line 155 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • template <typename T>
    int SooCapacityElements ()

    The number of elements that can be stored in the SOO rep. On 64-bit

    platforms, this is 1 for int64_t, 2 for int32_t, 3 for bool, and 0 for

    absl::Cord. We return 0 to disable SOO on 32-bit platforms.

    Defined at line 173 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • template <auto Resolver, typename T>
    Arena * ResolveArena (const T * object)

    Resolves an `Arena*` from the `InternalMetadata` of a containing type (which

    has a member `InternalMetadata _internal_metadata_`) given a reference to a

    field of type `T` contained by that type.

    The template parameter `Resolver` is a pointer-to-member to the

    `InternalMetadataResolver` field of `object`.

    `object` must have been constructed by the containing type, which is

    responsible for correctly constructing the `InternalMetadataOffset` for

    `object`.

    This function exists as a standalone function and not a member of

    `InternalMetadataResolver` because the offset must be computed relative to

    the address of the field containing the resolver, not the resolver itself.

    This pattern is easy to get wrong from the caller, so we force callers to

    give a pointer-to-member to the resolver as a type argument, then require

    that the pointer passed to `ResolveArena` is of the containing type of the

    resolver field. With the pointer-to-member type, we can load the resolver

    directly from the passed object, thereby ensuring we are using the correct

    offset for the object.

    Example usage:

    ```cc

    struct Bar {

    int some_value;

    InternalMetadataResolver resolver;

    Bar(int value, InternalMetadataOffset offset)

    : some_value(value), resolver(offset) {}

    Arena* GetArena() const {

    return ResolveArena

    <

    &Bar

    ::resolver>(this);

    }

    };

    struct Foo {

    InternalMetadata _internal_metadata_;

    Bar field1;

    Foo(Arena* arena)

    : _internal_metadata_(arena),

    field1(123,

    InternalMetadataOffset::Build

    <Foo

    , PROTOBUF_FIELD_OFFSET(

    Foo, field1)>()) {}

    };

    ```

    Defined at line 275 of file ../../third_party/protobuf/src/src/google/protobuf/internal_metadata_locator.h

  • void Unreachable ()

    Defined at line 612 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool HasMemoryPoisoning ()

    Defined at line 626 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void PoisonMemoryRegion (const void * p, size_t n)

    Poison memory region when supported by sanitizer config.

    Defined at line 635 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void UnpoisonMemoryRegion (const void * p, size_t n)

    Defined at line 644 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool IsMemoryPoisoned (const void * p)

    Defined at line 653 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool ShouldBatchSingularString ()

    Defined at line 661 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool ShouldBatchRepeatedString ()

    Defined at line 669 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool ShouldBatchRepeatedNumeric ()

    Defined at line 677 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • bool UseBatchOffset ()

    Defined at line 685 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void TSanRead (const void * )

    Defined at line 710 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • void TSanWrite (const void * )

    Defined at line 711 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <typename T>
    T * Launder (T * p)

    Defined at line 720 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <typename T>
    bool EnableCustomNewFor ()

    Defined at line 737 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • int CheckedAdd (int a, int b)

    Defined at line 837 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • BoundsCheckMode GetBoundsCheckMode ()

    Defined at line 854 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <typename T>
    T UnalignedLoad (const char * p)

    Defined at line 893 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • template <typename T, typename Void, typename = std::enable_if_t<std::is_same<Void, void>::value>>
    T UnalignedLoad (const Void * p)

    Defined at line 901 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • template <typename T>
    T UnalignedLoadAndIncrement (const char ** ptr)

    Defined at line 906 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • const char * VarintParseSlow (const char * p, uint32_t res, uint32_t * out)

    Defined at line 921 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • const char * VarintParseSlow (const char * p, uint32_t res, uint64_t * out)

    Defined at line 928 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • template <typename T, typename K>
    bool InitializeMapKey (T * , K && , Arena * )

    Defined at line 1071 of file ../../third_party/protobuf/src/src/google/protobuf/map.h

  • template <typename T>
    const char * VarintParse (const char * p, T * out)

    The caller must ensure that p points to at least 10 valid bytes.

    Defined at line 1172 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • const char * ReadTag (const char * p, uint32_t * out, uint32_t )

    Same as ParseVarint but only accept 5 bytes at most.

    Defined at line 1212 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • uint32_t DecodeTwoBytes (const char ** ptr)

    Decode 2 consecutive bytes of a varint and returns the value, shifted left

    by 1. It simultaneous updates *ptr to *ptr + 1 or *ptr + 2 depending if the

    first byte's continuation bit is set.

    If bit 15 of return value is set (equivalent to the continuation bits of both

    bytes being set) the varint continues, otherwise the parse is done. On x86

    movsx eax, dil

    and edi, eax

    add eax, edi

    adc [rsi], 1

    Defined at line 1319 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • const char * ParseBigVarint (const char * p, uint64_t * out)

    More efficient varint parsing for big varints

    Defined at line 1336 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • uint32_t ReadSize (const char ** pp)

    Used for length prefixes. Could read up to 5 bytes, but no more than

    necessary for a single varint. The caller must ensure enough bytes are

    available. Additionally it makes sure the unsigned value fits in an int32_t,

    otherwise returns nullptr. Caller must ensure it is safe to call.

    Defined at line 1365 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • uint64_t ReadVarint64 (const char ** p)

    Some convenience functions to simplify the generated parse loop code.

    Returning the value and updating the buffer pointer allows for nicer

    function composition. We rely on the compiler to inline this.

    Also in debug compiles having local scoped variables tend to generated

    stack frames that scale as O(num fields).

    Defined at line 1383 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • uint32_t ReadVarint32 (const char ** p)

    Defined at line 1390 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • int64_t ReadVarintZigZag64 (const char ** p)

    Defined at line 1397 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • int32_t ReadVarintZigZag32 (const char ** p)

    Defined at line 1404 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • template <typename T, int kHeapRepHeaderSize>
    int CalculateReserveSize (int capacity, int new_size)

    Returns the new size for a reserved field based on its 'capacity' and the

    requested 'new_size'. The result is clamped to the closed interval:

    [internal::kMinRepeatedFieldAllocationSize,

    std::numeric_limits

    <int

    >::max()]

    Requires: new_size > capacity

    Defined at line 1471 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • template <typename MS>
    bool ParseMessageSetItemImpl (io::CodedInputStream * input, MS ms)

    Defined at line 1634 of file ../../third_party/protobuf/src/src/google/protobuf/wire_format_lite.h

  • const char * InlineCordParser (::absl::Cord * cord, const char * ptr, ParseContext * ctx)

    Defined at line 1726 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • template <auto Resolver, uint32_t kTaggedBits_, typename T>
    Arena * ResolveTaggedArena (const T * object)
  • template <auto Resolver, uint32_t kTaggedBits, typename T>
    Arena * ResolveTaggedArena (const T * object)

    Defined at line 280 of file ../../third_party/protobuf/src/src/google/protobuf/internal_metadata_locator.h

  • template <typename T>
    bool SplitFieldHasExtraIndirectionStatic (const FieldDescriptor * field)

    In some cases, (Get|Mutable)Raw may be called with a type that is different

    from the final type; e.g. char. As a defensive coding to this unfortunate

    practices, we should only assume extra indirection (or a lack thereof) for

    the well known, complex types.

    Defined at line 1736 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

  • template <typename T>
    const char * FieldParser (uint64_t tag, T & field_parser, const char * ptr, ParseContext * ctx)

    Defined at line 1736 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • bool InternalPackFromLite (const MessageLite & message, absl::string_view type_url_prefix, absl::string_view type_name, std::string * dst_url, std::string * dst_value)

    Helper functions that only require 'lite' messages to work.

  • bool InternalUnpackToLite (absl::string_view type_name, absl::string_view type_url, const std::string & value, MessageLite * dst_message)
  • bool InternalIsLite (absl::string_view type_name, absl::string_view type_url)
  • template <typename T>
    bool InternalPackFrom (const T & message, std::string * dst_url, std::string * dst_value)

    Packs a message using the default type URL prefix: "type.googleapis.com".

    The resulted type URL will be "type.googleapis.com/<message_full_name>".

    Returns false if serializing the message failed.

    Defined at line 66 of file ../../third_party/protobuf/src/src/google/protobuf/any.h

  • void WriteVarint (uint32_t num, uint64_t val, std::string * s)

    Template code below needs to know about the existence of these functions.

  • void WriteLengthDelimited (uint32_t num, absl::string_view val, std::string * s)
  • void WriteVarint (uint32_t num, uint64_t val, UnknownFieldSet * unknown)

    Inline because it is just forwarding to s->WriteVarint

    Defined at line 307 of file ../../third_party/protobuf/src/src/google/protobuf/unknown_field_set.h

  • void WriteLengthDelimited (uint32_t num, absl::string_view val, UnknownFieldSet * unknown)

    Defined at line 310 of file ../../third_party/protobuf/src/src/google/protobuf/unknown_field_set.h

  • int CountVarintsAssumingLargeArray (const char * ptr, const char * end)

    Counts the number of varints in the array, assuming that end - ptr >= 8.

    If varints are valid only up to some point, then returns at least the number

    of valid varints.

  • bool InternalPackFrom (const Message & message, std::string * dst_url, std::string * dst_value)
  • bool VerifyBoolsAssumingLargeArray (const char * ptr, const char * end)

    Checks if each byte in the array is a valid representation for a bool, i.e.

    0 or 1, assuming that end - ptr >= 8. Optimized for the result being true.

  • bool InternalPackFrom (const Message & message, absl::string_view type_url_prefix, std::string * dst_url, std::string * dst_value)
  • template <typename T>
    bool InternalUnpackTo (absl::string_view type_url, const std::string & value, T * message)

    Unpacks the payload into the given message. Returns false if the message's

    type doesn't match the type specified in the type URL (i.e., the full

    name after the last "/" of the type URL doesn't match the message's actual

    full name) or parsing the payload has failed.

    Defined at line 103 of file ../../third_party/protobuf/src/src/google/protobuf/any.h

  • template <typename T>
    bool InternalIs (absl::string_view type_url)

    Checks whether the type specified in the type URL matches the given type.

    A type is considered matching if its full name matches the full name after

    the last "/" in the type URL.

    Defined at line 117 of file ../../third_party/protobuf/src/src/google/protobuf/any.h

  • bool InternalUnpackTo (absl::string_view type_url, const std::string & value, Message * message)
  • MapTypeCard MakeMapTypeCard (int number, WireFormatLite::FieldType type)

    Make the map entry type card for a specified field type.

    Defined at line 188 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_tctable_decl.h

  • void UnknownFieldSerializerLite (const uint8_t * base, uint32_t offset, uint32_t tag, uint32_t has_offset, io::CodedOutputStream * output)
  • MessageLite * DuplicateIfNonNullInternal (MessageLite * message)
  • MessageLite * GetOwnedMessageInternal (Arena * message_arena, MessageLite * submessage, Arena * submessage_arena)
  • int32_t ThreadSafeArenazSampleParameter ()

    Returns the rate at which thread safe arena will be sampled.

  • int ToCachedSize (size_t size)

    We compute sizes as size_t but cache them as int. This function converts a

    computed size to a cached size. Since we don't proceed with serialization

    if the total size was > INT_MAX, it is not important what this function

    returns for inputs > INT_MAX. However this case should not error or

    ABSL_CHECK-fail, because the full size_t resolution is still returned from

    ByteSizeLong() and checked against INT_MAX; we can catch the overflow

    there.

    Defined at line 327 of file ../../third_party/protobuf/src/src/google/protobuf/message_lite.h

  • size_t FromIntSize (int size)

    We mainly calculate sizes in terms of size_t, but some functions that

    compute sizes return "int". These int sizes are expected to always be

    positive. This function is more efficient than casting an int to size_t

    directly on 64-bit platforms because it avoids making the compiler emit a

    sign extending instruction, which we don't want and don't want to pay for.

    Defined at line 335 of file ../../third_party/protobuf/src/src/google/protobuf/message_lite.h

  • int ToIntSize (size_t size)

    For cases where a legacy function returns an integer size. We ABSL_DCHECK()

    that the conversion will fit within an integer; if this is false then we

    are losing information.

    Defined at line 344 of file ../../third_party/protobuf/src/src/google/protobuf/message_lite.h

  • const std::string & GetEmptyStringAlreadyInited ()

    Defined at line 350 of file ../../third_party/protobuf/src/src/google/protobuf/message_lite.h

  • template <typename LHS, typename RHS>
    decltype(Unpack(lhs) == Unpack(rhs)) operator== (const LHS & lhs, const RHS & rhs)

    Defined at line 879 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • template <typename LHS, typename RHS>
    decltype(lhs == rhs) operator!= (const LHS & lhs, const RHS & rhs)

    Defined at line 885 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • SerialArena * GetSerialArena (SerialArena * arena)

    Defined at line 1197 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • SerialArena * GetSerialArena (Arena * )

    Defined at line 1202 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • template <auto... delay>
    SerialArena * GetSerialArena (const MessageLite * elem)

    Using a template to make member access type dependent and delay it until

    instantiation when `MessageLite` will be complete.

    Not really a generic function.

    Defined at line 1214 of file ../../third_party/protobuf/src/src/google/protobuf/arena.h

  • template <typename Type>
    const ClassData * GetClassData (const Type & msg)

    Returns the ClassData for the given message.

    This function is used to get the ClassData for a message without having to

    know the type of the message. This is useful for when the message is a

    generated message.

    Defined at line 1469 of file ../../third_party/protobuf/src/src/google/protobuf/message_lite.h

  • template <bool alias, typename T>
    bool MergeFromImpl (const SourceWrapper<T> & input, MessageLite * msg, const internal::TcParseTableBase * tc_table, MessageLite::ParseFlags parse_flags)

    Defined at line 1532 of file ../../third_party/protobuf/src/src/google/protobuf/message_lite.h

  • void MaybePoisonAfterClear (Message * root)

    Defined at line 1749 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

  • void UnknownFieldSetSerializer (const uint8_t * base, uint32_t offset, uint32_t tag, uint32_t has_offset, io::CodedOutputStream * output)

    These cannot be in lite so we put them in the reflection.

  • const char * UnknownGroupParse (UnknownFieldSet * unknown, const char * ptr, ParseContext * ctx)
  • void InitializeFileDescriptorDefaultInstances ()
  • const char * UnknownFieldParse (uint64_t tag, UnknownFieldSet * unknown, const char * ptr, ParseContext * ctx)
  • void AddDescriptors (const DescriptorTable * table)
  • const Message * GetPrototypeForWeakDescriptor (const DescriptorTable * table, int index, bool force_build)

    Retrieves the existing prototype out of a descriptor table.

    If it doesn't exist:

    - If force_build is true, asks the generated message factory for one.

    - Otherwise, return null

  • const std::string & NameOfDenseEnumSlow (int v, DenseEnumCacheInfo * )
  • absl::string_view ShortEditionName (Edition edition)
  • bool IsEnumFullySequential (const EnumDescriptor * enum_desc)

    Defined at line 3220 of file ../../third_party/protobuf/src/src/google/protobuf/descriptor.h

  • const std::string & DefaultValueStringAsString (const FieldDescriptor * field)

    Defined at line 3210 of file ../../third_party/protobuf/src/src/google/protobuf/descriptor.h

  • const std::string & NameOfEnumAsString (const EnumValueDescriptor * descriptor)

    Defined at line 3215 of file ../../third_party/protobuf/src/src/google/protobuf/descriptor.h

  • void * CreateSplitMessageGeneric (Arena * arena, const void * default_split, size_t size)

    Creates and returns an allocation for a split message.

  • template <typename T>
    FieldDescriptor::CppType GetCppType ()

    Defined at line 1771 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

  • template <typename... T>
    void MapMergeFrom (Map<T...> & dest, const Map<T...> & src)

    Defined at line 1775 of file ../../third_party/protobuf/src/src/google/protobuf/map.h

  • template <typename T>
    FieldRangeImpl<T> FieldRange (const T * desc)

    Defined at line 3231 of file ../../third_party/protobuf/src/src/google/protobuf/descriptor.h

  • std::string StringifyMessage (const Message & message)
  • bool SplitFieldHasExtraIndirection (const FieldDescriptor * field)

    Returns whether this type of field is stored in the split struct as a raw

    pointer.

  • std::pair<const char *, int32_t> ReadSizeFallback (const char * p, uint32_t res)

    Needs access to kSlopBytes.

  • void protobuf_assumption_failed (const char * pred, const char * file, int line)
  • void HandleAddOverflow (int a, int b)
  • std::pair<const char *, uint32_t> VarintParseSlow32 (const char * p, uint32_t res)
  • std::pair<const char *, uint64_t> VarintParseSlow64 (const char * p, uint32_t res)
  • std::pair<const char *, uint32_t> ReadTagFallback (const char * p, uint32_t res)

    Used for tags, could read up to 5 bytes which must be available.

    Caller must ensure it's safe to call.

  • void OnShutdown (void (*)() func)

    Register a function to be called when ShutdownProtocolBuffers() is called.

  • void OnShutdownRun (void (*)(const void *) f, const void * arg)

    Run an arbitrary function on an arg

  • LazyEagerVerifyFnType FindExtensionLazyEagerVerifyFn (const MessageLite * extendee, int number)

    Used by WireFormatVerify to extract the verify function from the registry.

  • void FailDynamicCast (const MessageLite & from, const MessageLite & to)
  • const char * PackedInt32Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)

    These are packed varints

  • const char * PackedUInt32Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedInt64Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedUInt64Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedSInt32Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedSInt64Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedEnumParser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedBoolParser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • bool ParseNoReflection (absl::string_view from, google::protobuf::MessageLite & to)

    While building descriptors, we need to avoid using MergeFrom()/CopyFrom() to

    be -fno-rtti friendly. Without RTTI, MergeFrom() and CopyFrom() will fallback

    to the reflection based method, which requires the Descriptor. However, while

    building the descriptors, this causes deadlock. We also must disable lazy

    parsing because that uses reflection to verify consistency.

  • bool operator== (iterator a, iterator b)

    Defined at line 100 of file ../../third_party/protobuf/src/src/google/protobuf/generated_enum_reflection.h

  • bool operator!= (iterator a, iterator b)

    Defined at line 104 of file ../../third_party/protobuf/src/src/google/protobuf/generated_enum_reflection.h

  • void swap (ThreadSafeArenaStatsHandle & , ThreadSafeArenaStatsHandle & )

    Defined at line 184 of file ../../third_party/protobuf/src/src/google/protobuf/arenaz_sampler.h

  • ThreadSafeArenaStatsHandle Sample ()

    Returns an RAII sampling handle that manages registration and unregistation

    with the global sampler.

    Defined at line 198 of file ../../third_party/protobuf/src/src/google/protobuf/arenaz_sampler.h

  • template <typename T, const char* (*func)(T*, const char*, ParseContext*)>
    const char * StubParseImpl (::google::protobuf::MessageLite * msg, const char * ptr, ::google::protobuf::internal::ParseContext * ctx, ::google::protobuf::internal::TcFieldData data, const ::google::protobuf::internal::TcParseTableBase * table, uint64_t hasbits)

    Defined at line 577 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_tctable_decl.h

  • template <typename T, const char* (*func)(T*, const char*, ParseContext*)>
    TcParseTable<0> CreateStubTcParseTable (const ClassData * class_data, TcParseTableBase::PostLoopHandler post_loop_handler)

    Defined at line 583 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_tctable_decl.h

  • bool HasCrc32 ()

    Defined at line 868 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • uint32_t Crc32 (uint32_t crc, uint64_t v)

    Defined at line 869 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

  • template <class T>
    T RotateLeft (T x, int s)

    As above, but optimized to consume very few registers while still being fast,

    ReadTagInlined is useful for callers that don't mind the extra code but would

    like to avoid an extern function call causing spills into the stack.

    Two support routines for ReadTagInlined come first...

    Defined at line 1237 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • uint64_t RotRight7AndReplaceLowByte (uint64_t res, const char byte)

    Defined at line 1243 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • const char * ReadTagInlined (const char * ptr, uint32_t * out)

    Defined at line 1267 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • template <typename T>
    T * OnShutdownDelete (T * p)

    Defined at line 1579 of file ../../third_party/protobuf/src/src/google/protobuf/message_lite.h

  • ThreadSafeArenaStats * SampleSlow (SamplingState & next_sample)
  • template <typename ExtendeeType, typename TypeTraitsType, internal::FieldType field_type, bool is_packed>
    auto TryGetLazyMessageFromExtensionSet (Arena * arena, const google::protobuf::internal::ExtensionIdentifier<ExtendeeType, TypeTraitsType, field_type, is_packed> & extension, ExtensionSet & set)

    Defined at line 1818 of file ../../third_party/protobuf/src/src/google/protobuf/extension_set.h

  • void VerifyVersion (int protobufVersionCompiledWith, const char * filename)

    Verifies that the protobuf version a program was compiled with matches what

    it is linked/running with. Use the macro below to call this function.

  • std::string VersionString (int version)

    Converts a numeric version number to a string.

  • std::string ProtocVersionString (int version)

    Prints the protoc compiler version (no major version)

  • void UnsampleSlow (ThreadSafeArenaStats * info)
  • bool VerifyUTF8 (absl::string_view s, const char * field_name)

    Helper for verification of utf8

  • const char * InlineGreedyStringParser (std::string * s, const char * ptr, ParseContext * ctx)

    All the string parsers with or without UTF checking and for all CTypes.

  • const char * UnknownFieldParse (uint32_t tag, std::string * unknown, const char * ptr, ParseContext * ctx)

    This is a helper to for the UnknownGroupLiteParse but is actually also

    useful in the generated code. It uses overload on std::string* vs

    UnknownFieldSet* to make the generated code isomorphic between full and lite.

  • bool operator== (const iterator & x, const iterator & y)

    equality_comparable

    Defined at line 1677 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • bool operator!= (const iterator & x, const iterator & y)

    Defined at line 1681 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • bool operator< (const iterator & x, const iterator & y)

    less_than_comparable

    Defined at line 1687 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • bool operator<= (const iterator & x, const iterator & y)

    Defined at line 1691 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • bool operator> (const iterator & x, const iterator & y)

    Defined at line 1695 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • bool operator>= (const iterator & x, const iterator & y)

    Defined at line 1699 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • iterator operator+ (const difference_type d, iterator it)

    Defined at line 1712 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • bool VerifyUTF8 (const std::string * s, const char * field_name)

    Defined at line 1718 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • difference_type operator- (iterator it1, iterator it2)

    random access iterator

    Defined at line 1732 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • template <typename T>
    const char * WireFormatParser (T & field_parser, const char * ptr, ParseContext * ctx)

    Defined at line 1782 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • template <typename T>
    void CheckIndexInBoundsOrAbort (const RepeatedField<T> & field, int index)

    Defined at line 1788 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • template <typename T>
    const T & CheckedGetOrAbort (const RepeatedField<T> & field, int index)

    Defined at line 1796 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • template <typename T>
    T * CheckedMutableOrAbort (RepeatedField<T> * field, int index)

    Defined at line 1802 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

  • template <typename T, typename Validator>
    const char * PackedEnumParserArg (void * object, const char * ptr, ParseContext * ctx, Validator validator, InternalMetadata * metadata, int field_num)

    Defined at line 1832 of file ../../third_party/protobuf/src/src/google/protobuf/parse_context.h

  • const char * PackedFixed32Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedSFixed32Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedFixed64Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedSFixed64Parser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedFloatParser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * PackedDoubleParser (void * object, Arena * arena, const char * ptr, ParseContext * ctx)
  • const char * UnknownGroupLiteParse (std::string * unknown, const char * ptr, ParseContext * ctx)

    This is the only recursive parser.

  • bool operator== (const iterator & x, const iterator & y)

    equality_comparable

    Defined at line 2196 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator!= (const iterator & x, const iterator & y)

    Defined at line 2199 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator< (const iterator & x, const iterator & y)

    less_than_comparable

    Defined at line 2204 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator<= (const iterator & x, const iterator & y)

    Defined at line 2207 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator> (const iterator & x, const iterator & y)

    Defined at line 2210 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator>= (const iterator & x, const iterator & y)

    Defined at line 2213 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • iterator operator+ (iterator it, const difference_type d)

    Defined at line 2222 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • iterator operator+ (const difference_type d, iterator it)

    Defined at line 2226 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • iterator operator- (iterator it, difference_type d)

    Defined at line 2234 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • difference_type operator- (iterator it1, iterator it2)

    random access iterator

    Defined at line 2245 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator== (const iterator & x, const iterator & y)

    equality_comparable

    Defined at line 2330 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator!= (const iterator & x, const iterator & y)

    Defined at line 2333 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator< (const iterator & x, const iterator & y)

    less_than_comparable

    Defined at line 2338 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator<= (const iterator & x, const iterator & y)

    Defined at line 2341 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator> (const iterator & x, const iterator & y)

    Defined at line 2344 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator>= (const iterator & x, const iterator & y)

    Defined at line 2347 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • iterator operator+ (iterator it, difference_type d)

    Defined at line 2356 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • iterator operator+ (difference_type d, iterator it)

    Defined at line 2360 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • iterator operator- (iterator it, difference_type d)

    Defined at line 2368 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • difference_type operator- (iterator it1, iterator it2)

    random access iterator

    Defined at line 2379 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • template <typename Element>
    auto ConvertToPtrIterator (RepeatedPtrIterator<Element> it)

    Defined at line 2392 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_ptr_field.h

  • bool operator== (const Iterator & a, const Iterator & b)

    Defined at line 3248 of file ../../third_party/protobuf/src/src/google/protobuf/descriptor.h

  • bool operator!= (const Iterator & a, const Iterator & b)

    Defined at line 3253 of file ../../third_party/protobuf/src/src/google/protobuf/descriptor.h

Variables

const std::false_type IsRepeatedT

Defined at line 1760 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

const std::true_type IsRepeatedT

Defined at line 1761 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

const std::true_type IsRepeatedT

Defined at line 1763 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

const std::true_type IsRepeatedT

Defined at line 1765 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

const std::true_type IsRepeatedT

Defined at line 1767 of file ../../third_party/protobuf/src/src/google/protobuf/message.h

const EmptyCord empty_cord_
GlobalEmptyString fixed_address_empty_string
ImplicitWeakMessageDefaultType implicit_weak_message_globals
std::atomic<bool> init_protobuf_defaults_state
const char[] kAnyFullTypeName
const DescriptorMethods kDescriptorMethods
NodeBase *const[1] kGlobalEmptyTable
const uint32_t kInvalidFieldOffsetTag

Defined at line 64 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_reflection.h

const uint32_t kSplitFieldOffsetMask

Defined at line 67 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_reflection.h

const uint32_t kLazyMask

Defined at line 68 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_reflection.h

const uint32_t kInlinedMask

Defined at line 69 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_reflection.h

const uint32_t kMicroStringMask

Defined at line 70 of file ../../third_party/protobuf/src/src/google/protobuf/generated_message_reflection.h

const int kRepeatedFieldUpperClampLimit

Defined at line 98 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

const uint32_t kNotSooBit

Defined at line 163 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

const uint32_t kResolverTaggedBits

Defined at line 166 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

const size_t kSooSizeMask

Defined at line 167 of file ../../third_party/protobuf/src/src/google/protobuf/repeated_field.h

const size_t kSafeStringSize

Defined at line 783 of file ../../third_party/protobuf/src/src/google/protobuf/port.h

const char[] kTypeGoogleApisComPrefix
const char[] kTypeGoogleProdComPrefix