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