Classes | Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
google::protobuf.internal::ArenaImpl Class Reference

#include <arena_impl.h>

Classes

class  Block
 
struct  CleanupChunk
 
struct  CleanupNode
 
struct  Options
 
class  SerialArena
 
struct  ThreadCache
 

Public Member Functions

void AddCleanup (void *elem, void(*cleanup)(void *))
 
void * AllocateAligned (size_t n)
 
void * AllocateAlignedAndAddCleanup (size_t n, void(*cleanup)(void *))
 
template<typename O >
 ArenaImpl (const O &options)
 
uint64 Reset ()
 
uint64 SpaceAllocated () const
 
uint64 SpaceUsed () const
 
 ~ArenaImpl ()
 

Static Public Attributes

static const size_t kBlockHeaderSize
 
static const size_t kSerialArenaSize
 

Private Member Functions

void AddCleanupFallback (void *elem, void(*cleanup)(void *))
 
void * AllocateAlignedAndAddCleanupFallback (size_t n, void(*cleanup)(void *))
 
void * AllocateAlignedFallback (size_t n)
 
 ArenaImpl (ArenaImpl &&)=delete
 
void CacheSerialArena (SerialArena *serial)
 
void CleanupList ()
 
uint64 FreeBlocks ()
 
SerialArenaGetSerialArena ()
 
SerialArenaGetSerialArenaFallback (void *me)
 
bool GetSerialArenaFast (SerialArena **arena)
 
 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS (ArenaImpl)
 
void Init ()
 
BlockNewBlock (Block *last_block, size_t min_bytes)
 
ArenaImploperator= (ArenaImpl &&)=delete
 

Static Private Member Functions

static ThreadCachethread_cache ()
 

Private Attributes

std::atomic< SerialArena * > hint_
 
Blockinitial_block_
 
LifecycleId lifecycle_id_
 
Options options_
 
std::atomic< size_t > space_allocated_
 
std::atomic< SerialArena * > threads_
 

Static Private Attributes

static std::atomic< LifecycleIdlifecycle_id_generator_
 
static GOOGLE_THREAD_LOCAL ThreadCache thread_cache_ = {-1, NULL}
 

Detailed Description

Definition at line 66 of file bloaty/third_party/protobuf/src/google/protobuf/arena_impl.h.

Constructor & Destructor Documentation

◆ ArenaImpl() [1/2]

template<typename O >
google::protobuf.internal::ArenaImpl::ArenaImpl ( const O &  options)
inlineexplicit

◆ ~ArenaImpl()

google::protobuf.internal::ArenaImpl::~ArenaImpl ( )

◆ ArenaImpl() [2/2]

google::protobuf.internal::ArenaImpl::ArenaImpl ( ArenaImpl &&  )
privatedelete

Member Function Documentation

◆ AddCleanup()

void google::protobuf.internal::ArenaImpl::AddCleanup ( void *  elem,
void(*)(void *)  cleanup 
)

◆ AddCleanupFallback()

PROTOBUF_NOINLINE void google::protobuf.internal::ArenaImpl::AddCleanupFallback ( void *  elem,
void(*)(void *)  cleanup 
)
private

◆ AllocateAligned()

void * google::protobuf.internal::ArenaImpl::AllocateAligned ( size_t  n)

◆ AllocateAlignedAndAddCleanup()

void * google::protobuf.internal::ArenaImpl::AllocateAlignedAndAddCleanup ( size_t  n,
void(*)(void *)  cleanup 
)

◆ AllocateAlignedAndAddCleanupFallback()

PROTOBUF_NOINLINE void * google::protobuf.internal::ArenaImpl::AllocateAlignedAndAddCleanupFallback ( size_t  n,
void(*)(void *)  cleanup 
)
private

◆ AllocateAlignedFallback()

PROTOBUF_NOINLINE void * google::protobuf.internal::ArenaImpl::AllocateAlignedFallback ( size_t  n)
private

◆ CacheSerialArena()

void google::protobuf.internal::ArenaImpl::CacheSerialArena ( SerialArena serial)
inlineprivate

◆ CleanupList()

void google::protobuf.internal::ArenaImpl::CleanupList ( )
private

◆ FreeBlocks()

uint64 google::protobuf.internal::ArenaImpl::FreeBlocks ( )
private

◆ GetSerialArena()

ArenaImpl::SerialArena * google::protobuf.internal::ArenaImpl::GetSerialArena ( )
private

◆ GetSerialArenaFallback()

PROTOBUF_NOINLINE ArenaImpl::SerialArena * google::protobuf.internal::ArenaImpl::GetSerialArenaFallback ( void *  me)
private

◆ GetSerialArenaFast()

PROTOBUF_ALWAYS_INLINE bool google::protobuf.internal::ArenaImpl::GetSerialArenaFast ( ArenaImpl::SerialArena **  arena)
inlineprivate

◆ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS()

google::protobuf.internal::ArenaImpl::GOOGLE_DISALLOW_EVIL_CONSTRUCTORS ( ArenaImpl  )
private

◆ Init()

void google::protobuf.internal::ArenaImpl::Init ( )
private

◆ NewBlock()

ArenaImpl::Block * google::protobuf.internal::ArenaImpl::NewBlock ( Block last_block,
size_t  min_bytes 
)
private

◆ operator=()

ArenaImpl& google::protobuf.internal::ArenaImpl::operator= ( ArenaImpl &&  )
privatedelete

◆ Reset()

uint64 google::protobuf.internal::ArenaImpl::Reset ( )

◆ SpaceAllocated()

uint64 google::protobuf.internal::ArenaImpl::SpaceAllocated ( ) const

◆ SpaceUsed()

uint64 google::protobuf.internal::ArenaImpl::SpaceUsed ( ) const

◆ thread_cache()

static ThreadCache& google::protobuf.internal::ArenaImpl::thread_cache ( )
inlinestaticprivate

Member Data Documentation

◆ hint_

std::atomic<SerialArena*> google::protobuf.internal::ArenaImpl::hint_
private

◆ initial_block_

Block* google::protobuf.internal::ArenaImpl::initial_block_
private

◆ kBlockHeaderSize

const size_t google::protobuf.internal::ArenaImpl::kBlockHeaderSize
static
Initial value:
=
(sizeof(Block) + 7) & static_cast<size_t>(-8)

Definition at line 310 of file bloaty/third_party/protobuf/src/google/protobuf/arena_impl.h.

◆ kSerialArenaSize

const size_t google::protobuf.internal::ArenaImpl::kSerialArenaSize
static
Initial value:
=
(sizeof(SerialArena) + 7) & static_cast<size_t>(-8)

Definition at line 312 of file bloaty/third_party/protobuf/src/google/protobuf/arena_impl.h.

◆ lifecycle_id_

LifecycleId google::protobuf.internal::ArenaImpl::lifecycle_id_
private

◆ lifecycle_id_generator_

std::atomic< LifecycleId > google::protobuf.internal::ArenaImpl::lifecycle_id_generator_
staticprivate

◆ options_

Options google::protobuf.internal::ArenaImpl::options_
private

◆ space_allocated_

std::atomic<size_t> google::protobuf.internal::ArenaImpl::space_allocated_
private

◆ thread_cache_

GOOGLE_THREAD_LOCAL ArenaImpl::ThreadCache google::protobuf.internal::ArenaImpl::thread_cache_ = {-1, NULL}
staticprivate

◆ threads_

std::atomic<SerialArena*> google::protobuf.internal::ArenaImpl::threads_
private

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


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:25