Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
grpc_core::Arena Class Reference

#include <arena.h>

Classes

struct  Zone
 

Public Member Functions

void * Alloc (size_t size)
 
size_t Destroy ()
 
template<typename T , typename... Args>
TNew (Args &&... args)
 

Static Public Member Functions

static ArenaCreate (size_t initial_size, MemoryAllocator *memory_allocator)
 
static std::pair< Arena *, void * > CreateWithAlloc (size_t initial_size, size_t alloc_size, MemoryAllocator *memory_allocator)
 

Private Member Functions

void * AllocZone (size_t size)
 
 Arena (size_t initial_size, size_t initial_alloc, MemoryAllocator *memory_allocator)
 
 ~Arena ()
 

Private Attributes

const size_t initial_zone_size_
 
std::atomic< Zone * > last_zone_ {nullptr}
 
MemoryAllocator *const memory_allocator_
 
std::atomic< size_t > total_allocated_ {0}
 
std::atomic< size_t > total_used_ {0}
 

Detailed Description

Definition at line 45 of file src/core/lib/resource_quota/arena.h.

Constructor & Destructor Documentation

◆ Arena()

grpc_core::Arena::Arena ( size_t  initial_size,
size_t  initial_alloc,
MemoryAllocator memory_allocator 
)
inlineexplicitprivate

Definition at line 100 of file src/core/lib/resource_quota/arena.h.

◆ ~Arena()

Arena::~Arena ( )
private

Definition at line 48 of file src/core/lib/resource_quota/arena.cc.

Member Function Documentation

◆ Alloc()

void* grpc_core::Arena::Alloc ( size_t  size)
inline

Definition at line 60 of file src/core/lib/resource_quota/arena.h.

◆ AllocZone()

void * Arena::AllocZone ( size_t  size)
private

Definition at line 81 of file src/core/lib/resource_quota/arena.cc.

◆ Create()

Arena * Arena::Create ( size_t  initial_size,
MemoryAllocator memory_allocator 
)
static

Definition at line 58 of file src/core/lib/resource_quota/arena.cc.

◆ CreateWithAlloc()

std::pair< Arena *, void * > Arena::CreateWithAlloc ( size_t  initial_size,
size_t  alloc_size,
MemoryAllocator memory_allocator 
)
static

Definition at line 63 of file src/core/lib/resource_quota/arena.cc.

◆ Destroy()

size_t Arena::Destroy ( )

Definition at line 73 of file src/core/lib/resource_quota/arena.cc.

◆ New()

template<typename T , typename... Args>
T* grpc_core::Arena::New ( Args &&...  args)
inline

Definition at line 77 of file src/core/lib/resource_quota/arena.h.

Member Data Documentation

◆ initial_zone_size_

const size_t grpc_core::Arena::initial_zone_size_
private

Definition at line 114 of file src/core/lib/resource_quota/arena.h.

◆ last_zone_

std::atomic<Zone*> grpc_core::Arena::last_zone_ {nullptr}
private

Definition at line 120 of file src/core/lib/resource_quota/arena.h.

◆ memory_allocator_

MemoryAllocator* const grpc_core::Arena::memory_allocator_
private

Definition at line 122 of file src/core/lib/resource_quota/arena.h.

◆ total_allocated_

std::atomic<size_t> grpc_core::Arena::total_allocated_ {0}
private

Definition at line 113 of file src/core/lib/resource_quota/arena.h.

◆ total_used_

std::atomic<size_t> grpc_core::Arena::total_used_ {0}
private

Definition at line 112 of file src/core/lib/resource_quota/arena.h.


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


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