struct CordRep

Defined at line 240 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

The overhead of a vtable is too much for Cord, so we roll our own subclasses

using only a single byte to differentiate classes from each other - the "tag"

byte. Define the subclasses first so we can provide downcasting helper

functions in the base class.

Public Members

size_t length
RefcountAndFlags refcount
uint8_t tag
uint8_t[3] storage

Public Methods

void CordRep ()

Defined at line 253 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

void CordRep (RefcountAndFlags::Immortal immortal, size_t l)

Defined at line 254 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

bool IsSubstring ()

Returns true if this instance's tag matches the requested type.

Defined at line 281 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

bool IsCrc ()

Defined at line 282 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

bool IsExternal ()

Defined at line 283 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

bool IsFlat ()

Defined at line 284 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

bool IsBtree ()

Defined at line 285 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

CordRepSubstring * substring ()

Defined at line 858 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

const CordRepSubstring * substring ()

Defined at line 863 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

CordRepCrc * crc ()

Defined at line 89 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h

const CordRepCrc * crc ()

Defined at line 94 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h

CordRepExternal * external ()

Defined at line 868 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

const CordRepExternal * external ()

Defined at line 873 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

CordRepFlat * flat ()

Now that CordRepFlat is defined, we can define CordRep's helper casts:

Defined at line 181 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h

const CordRepFlat * flat ()

Defined at line 186 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h

CordRepBtree * btree ()

Defined at line 598 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h

const CordRepBtree * btree ()

Defined at line 603 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h

void Destroy (CordRep * rep)

Destroys the provided `rep`.

CordRep * Ref (CordRep * rep)

Increments the reference count of `rep`.

Requires `rep` to be a non-null pointer value.

Defined at line 878 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

void Unref (CordRep * rep)

Decrements the reference count of `rep`. Destroys rep if count reaches

zero. Requires `rep` to be a non-null pointer value.

Defined at line 886 of file ../../third_party/abseil-cpp/absl/strings/internal/cord_internal.h

Records