webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
google::protobuf::Arena Class Reference

#include <arena.h>

Classes

struct  is_arena_constructable
 
struct  is_destructor_skippable
 
struct  Node
 

Public Member Functions

 Arena (const ArenaOptions &options)
 
 Arena ()
 
 ~Arena ()
 
GOOGLE_ATTRIBUTE_NOINLINE uint64 SpaceAllocated () const
 
GOOGLE_ATTRIBUTE_NOINLINE uint64 SpaceUsed () const
 
GOOGLE_ATTRIBUTE_NOINLINE pair< uint64, uint64SpaceAllocatedAndUsed () const
 
GOOGLE_ATTRIBUTE_NOINLINE uint64 Reset ()
 
template<typename T >
GOOGLE_ATTRIBUTE_NOINLINE void Own (T *object)
 
template<typename T >
GOOGLE_ATTRIBUTE_NOINLINE void OwnDestructor (T *object)
 
GOOGLE_ATTRIBUTE_NOINLINE void OwnCustomDestructor (void *object, void(*destruct)(void *))
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternalRawArray (size_t num_elements)
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership)
 
template<typename T , typename Arg >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg &arg)
 
template<typename T , typename Arg1 , typename Arg2 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg1 &arg1, const Arg2 &arg2)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5, const Arg6 &arg6)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5, const Arg6 &arg6, const Arg7 &arg7)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateInternal (bool skip_explicit_ownership, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5, const Arg6 &arg6, const Arg7 &arg7, const Arg8 &arg8)
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateMessageInternal (typename T::InternalArenaConstructable_ *)
 
template<typename T , typename Arg >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateMessageInternal (typename T::InternalArenaConstructable_ *, const Arg &arg)
 
template<typename T , typename Arg1 , typename Arg2 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateMessageInternal (typename T::InternalArenaConstructable_ *, const Arg1 &arg1, const Arg2 &arg2)
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE void OwnInternal (T *object, google::protobuf::internal::true_type)
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE void OwnInternal (T *object, google::protobuf::internal::false_type)
 
voidAllocateAligned (const std::type_info *allocated, size_t n)
 
GOOGLE_ATTRIBUTE_ALWAYS_INLINE voidAllocateAligned (size_t n)
 
void Init ()
 
uint64 FreeBlocks ()
 
void AddListNode (void *elem, void(*cleanup)(void *))
 
void CleanupList ()
 
uint64 ResetInternal ()
 
void SetThreadCacheBlock (Block *block)
 
void AddBlock (Block *b)
 
void AddBlockInternal (Block *b)
 
voidSlowAlloc (size_t n)
 
Block * FindBlock (void *me)
 
Block * NewBlock (void *me, Block *my_last_block, size_t n, size_t start_block_size, size_t max_block_size)
 
 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS (Arena)
 

Static Public Member Functions

template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateMessage (::google::protobuf::Arena *arena)
 
template<typename T , typename Arg >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateMessage (::google::protobuf::Arena *arena, const Arg &arg)
 
template<typename T , typename Arg1 , typename Arg2 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateMessage (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2)
 
template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena)
 
template<typename T , typename Arg >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg &arg)
 
template<typename T , typename Arg1 , typename Arg2 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5, const Arg6 &arg6)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5, const Arg6 &arg6, const Arg7 &arg7)
 
template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreate (::google::protobuf::Arena *arena, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5, const Arg6 &arg6, const Arg7 &arg7, const Arg8 &arg8)
 
template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateArray (::google::protobuf::Arena *arena, size_t num_elements)
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE ::google::protobuf::ArenaGetArena (const T *value)
 
template<typename Msg >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE Msg * CreateMaybeMessage (Arena *arena, typename Msg::InternalArenaConstructable_ *)
 
template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE TCreateMaybeMessage (Arena *arena,...)
 
template<typename T >
static void CreateInArenaStorage (T *ptr, Arena *arena)
 
template<typename T >
static void CreateInArenaStorageInternal (T *ptr, Arena *arena, google::protobuf::internal::true_type)
 
template<typename T >
static void CreateInArenaStorageInternal (T *ptr, Arena *arena, google::protobuf::internal::false_type)
 
template<typename T >
static void RegisterDestructorInternal (T *ptr, Arena *arena, google::protobuf::internal::true_type)
 
template<typename T >
static void RegisterDestructorInternal (T *ptr, Arena *arena, google::protobuf::internal::false_type)
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE ::google::protobuf::ArenaGetArenaInternal (const T *value, typename T::InternalArenaConstructable_ *)
 
template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE ::google::protobuf::ArenaGetArenaInternal (const T *value,...)
 
static voidAllocFromBlock (Block *b, size_t n)
 

Public Attributes

int64 lifecycle_id_
 
google::protobuf::internal::AtomicWord blocks_
 
google::protobuf::internal::AtomicWord hint_
 
google::protobuf::internal::AtomicWord cleanup_list_
 
bool owns_first_block_
 
Mutex blocks_lock_
 
voidhooks_cookie_
 
ArenaOptions options_
 

Friends

template<typename Type >
class ::google::protobuf::internal::GenericTypeHandler
 
class MockArena
 
class internal::ArenaString
 
class internal::LazyField
 
template<typename Key , typename T >
class Map
 

Constructor & Destructor Documentation

◆ Arena() [1/2]

google::protobuf::Arena::Arena ( const ArenaOptions options)
inlineexplicit

◆ Arena() [2/2]

google::protobuf::Arena::Arena ( )
inline

◆ ~Arena()

google::protobuf::Arena::~Arena ( )

Member Function Documentation

◆ AddBlock()

void google::protobuf::Arena::AddBlock ( Block *  b)

◆ AddBlockInternal()

void google::protobuf::Arena::AddBlockInternal ( Block *  b)

◆ AddListNode()

void google::protobuf::Arena::AddListNode ( void elem,
void(*)(void *)  cleanup 
)

◆ AllocateAligned() [1/2]

void * google::protobuf::Arena::AllocateAligned ( const std::type_info *  allocated,
size_t  n 
)

◆ AllocateAligned() [2/2]

GOOGLE_ATTRIBUTE_ALWAYS_INLINE void* google::protobuf::Arena::AllocateAligned ( size_t  n)
inline

◆ AllocFromBlock()

void * google::protobuf::Arena::AllocFromBlock ( Block *  b,
size_t  n 
)
static

◆ CleanupList()

void google::protobuf::Arena::CleanupList ( )

◆ Create() [1/9]

template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena)
inlinestatic

◆ Create() [2/9]

template<typename T , typename Arg >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg &  arg 
)
inlinestatic

◆ Create() [3/9]

template<typename T , typename Arg1 , typename Arg2 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2 
)
inlinestatic

◆ Create() [4/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3 
)
inlinestatic

◆ Create() [5/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4 
)
inlinestatic

◆ Create() [6/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5 
)
inlinestatic

◆ Create() [7/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5,
const Arg6 &  arg6 
)
inlinestatic

◆ Create() [8/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5,
const Arg6 &  arg6,
const Arg7 &  arg7 
)
inlinestatic

◆ Create() [9/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::Create ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5,
const Arg6 &  arg6,
const Arg7 &  arg7,
const Arg8 &  arg8 
)
inlinestatic

◆ CreateArray()

template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateArray ( ::google::protobuf::Arena arena,
size_t  num_elements 
)
inlinestatic

◆ CreateInArenaStorage()

template<typename T >
static void google::protobuf::Arena::CreateInArenaStorage ( T ptr,
Arena arena 
)
inlinestatic

◆ CreateInArenaStorageInternal() [1/2]

template<typename T >
static void google::protobuf::Arena::CreateInArenaStorageInternal ( T ptr,
Arena arena,
google::protobuf::internal::true_type   
)
inlinestatic

◆ CreateInArenaStorageInternal() [2/2]

template<typename T >
static void google::protobuf::Arena::CreateInArenaStorageInternal ( T ptr,
Arena arena,
google::protobuf::internal::false_type   
)
inlinestatic

◆ CreateInternal() [1/9]

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership)
inline

◆ CreateInternal() [2/9]

template<typename T , typename Arg >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg &  arg 
)
inline

◆ CreateInternal() [3/9]

template<typename T , typename Arg1 , typename Arg2 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg1 &  arg1,
const Arg2 &  arg2 
)
inline

◆ CreateInternal() [4/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3 
)
inline

◆ CreateInternal() [5/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4 
)
inline

◆ CreateInternal() [6/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5 
)
inline

◆ CreateInternal() [7/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5,
const Arg6 &  arg6 
)
inline

◆ CreateInternal() [8/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5,
const Arg6 &  arg6,
const Arg7 &  arg7 
)
inline

◆ CreateInternal() [9/9]

template<typename T , typename Arg1 , typename Arg2 , typename Arg3 , typename Arg4 , typename Arg5 , typename Arg6 , typename Arg7 , typename Arg8 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternal ( bool  skip_explicit_ownership,
const Arg1 &  arg1,
const Arg2 &  arg2,
const Arg3 &  arg3,
const Arg4 &  arg4,
const Arg5 &  arg5,
const Arg6 &  arg6,
const Arg7 &  arg7,
const Arg8 &  arg8 
)
inline

◆ CreateInternalRawArray()

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateInternalRawArray ( size_t  num_elements)
inline

◆ CreateMaybeMessage() [1/2]

template<typename Msg >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE Msg* google::protobuf::Arena::CreateMaybeMessage ( Arena arena,
typename Msg::InternalArenaConstructable_ *   
)
inlinestatic

◆ CreateMaybeMessage() [2/2]

template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateMaybeMessage ( Arena arena,
  ... 
)
inlinestatic

◆ CreateMessage() [1/3]

template<typename T >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateMessage ( ::google::protobuf::Arena arena)
inlinestatic

◆ CreateMessage() [2/3]

template<typename T , typename Arg >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateMessage ( ::google::protobuf::Arena arena,
const Arg &  arg 
)
inlinestatic

◆ CreateMessage() [3/3]

template<typename T , typename Arg1 , typename Arg2 >
static GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateMessage ( ::google::protobuf::Arena arena,
const Arg1 &  arg1,
const Arg2 &  arg2 
)
inlinestatic

◆ CreateMessageInternal() [1/3]

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateMessageInternal ( typename T::InternalArenaConstructable_ *  )
inline

◆ CreateMessageInternal() [2/3]

template<typename T , typename Arg >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateMessageInternal ( typename T::InternalArenaConstructable_ *  ,
const Arg &  arg 
)
inline

◆ CreateMessageInternal() [3/3]

template<typename T , typename Arg1 , typename Arg2 >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE T* google::protobuf::Arena::CreateMessageInternal ( typename T::InternalArenaConstructable_ *  ,
const Arg1 &  arg1,
const Arg2 &  arg2 
)
inline

◆ FindBlock()

Arena::Block * google::protobuf::Arena::FindBlock ( void me)

◆ FreeBlocks()

uint64 google::protobuf::Arena::FreeBlocks ( )

◆ GetArena()

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE ::google::protobuf::Arena* google::protobuf::Arena::GetArena ( const T value)
inlinestatic

◆ GetArenaInternal() [1/2]

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE ::google::protobuf::Arena* google::protobuf::Arena::GetArenaInternal ( const T value,
typename T::InternalArenaConstructable_ *   
)
inlinestatic

◆ GetArenaInternal() [2/2]

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE ::google::protobuf::Arena* google::protobuf::Arena::GetArenaInternal ( const T value,
  ... 
)
inlinestatic

◆ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS()

google::protobuf::Arena::GOOGLE_DISALLOW_EVIL_CONSTRUCTORS ( Arena  )

◆ Init()

void google::protobuf::Arena::Init ( )

◆ NewBlock()

Arena::Block * google::protobuf::Arena::NewBlock ( void me,
Block *  my_last_block,
size_t  n,
size_t  start_block_size,
size_t  max_block_size 
)

◆ Own()

template<typename T >
GOOGLE_ATTRIBUTE_NOINLINE void google::protobuf::Arena::Own ( T object)
inline

◆ OwnCustomDestructor()

GOOGLE_ATTRIBUTE_NOINLINE void google::protobuf::Arena::OwnCustomDestructor ( void object,
void(*)(void *)  destruct 
)
inline

◆ OwnDestructor()

template<typename T >
GOOGLE_ATTRIBUTE_NOINLINE void google::protobuf::Arena::OwnDestructor ( T object)
inline

◆ OwnInternal() [1/2]

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE void google::protobuf::Arena::OwnInternal ( T object,
google::protobuf::internal::true_type   
)
inline

◆ OwnInternal() [2/2]

template<typename T >
GOOGLE_ATTRIBUTE_ALWAYS_INLINE void google::protobuf::Arena::OwnInternal ( T object,
google::protobuf::internal::false_type   
)
inline

◆ RegisterDestructorInternal() [1/2]

template<typename T >
static void google::protobuf::Arena::RegisterDestructorInternal ( T ptr,
Arena arena,
google::protobuf::internal::true_type   
)
inlinestatic

◆ RegisterDestructorInternal() [2/2]

template<typename T >
static void google::protobuf::Arena::RegisterDestructorInternal ( T ptr,
Arena arena,
google::protobuf::internal::false_type   
)
inlinestatic

◆ Reset()

uint64 google::protobuf::Arena::Reset ( )

◆ ResetInternal()

uint64 google::protobuf::Arena::ResetInternal ( )

◆ SetThreadCacheBlock()

void google::protobuf::Arena::SetThreadCacheBlock ( Block *  block)
inline

◆ SlowAlloc()

void * google::protobuf::Arena::SlowAlloc ( size_t  n)

◆ SpaceAllocated()

uint64 google::protobuf::Arena::SpaceAllocated ( ) const

◆ SpaceAllocatedAndUsed()

pair< uint64, uint64 > google::protobuf::Arena::SpaceAllocatedAndUsed ( ) const

◆ SpaceUsed()

uint64 google::protobuf::Arena::SpaceUsed ( ) const

Friends And Related Function Documentation

◆ ::google::protobuf::internal::GenericTypeHandler

template<typename Type >
friend class ::google::protobuf::internal::GenericTypeHandler
friend

◆ internal::ArenaString

friend class internal::ArenaString
friend

◆ internal::LazyField

friend class internal::LazyField
friend

◆ Map

template<typename Key , typename T >
friend class Map
friend

◆ MockArena

friend class MockArena
friend

Member Data Documentation

◆ blocks_

google::protobuf::internal::AtomicWord google::protobuf::Arena::blocks_

◆ blocks_lock_

Mutex google::protobuf::Arena::blocks_lock_

◆ cleanup_list_

google::protobuf::internal::AtomicWord google::protobuf::Arena::cleanup_list_

◆ hint_

google::protobuf::internal::AtomicWord google::protobuf::Arena::hint_

◆ hooks_cookie_

void* google::protobuf::Arena::hooks_cookie_

◆ lifecycle_id_

int64 google::protobuf::Arena::lifecycle_id_

◆ options_

ArenaOptions google::protobuf::Arena::options_

◆ owns_first_block_

bool google::protobuf::Arena::owns_first_block_

The documentation for this class was generated from the following files: