CommonLibSSE NG
Loading...
Searching...
No Matches
RE::ZeroOverheadHeap Class Reference

#include <ZeroOverheadHeap.h>

Inheritance diagram for RE::ZeroOverheadHeap:
RE::IMemoryHeap RE::IMemoryStore RE::IMemoryStoreBase

Public Member Functions

 ~ZeroOverheadHeap () override
 
std::size_t Size (const void *a_block) const override
 
void GetMemoryStats (MemoryStats *a_stats) override
 
bool ContainsBlockImpl (const void *a_block) const override
 
void * AllocateAlignImpl (std::size_t a_size, std::uint32_t a_alignment) override
 
const char * GetName () const override
 
void * Allocate (std::size_t a_size, std::uint32_t a_alignment) override
 
void Deallocate (void *a_pointer, std::uint32_t) override
 
bool PointerInHeap (const void *a_pointer) const override
 
std::size_t TotalSize (const void *a_pointer) const override
 
void GetHeapStats (HeapStats *a_stats, bool a_fullBlockInfo) override
 
bool ShouldTrySmallBlockPools (std::size_t a_size, MEM_CONTEXT a_context) override
 
std::uint32_t GetPageSize () const override
 
- Public Member Functions inherited from RE::IMemoryHeap
 ~IMemoryHeap () override=default
 
bool ContainsBlockImpl (const void *a_block) const override
 
void * AllocateAlignImpl (std::size_t a_size, std::uint32_t a_alignment) override
 
void DeallocateAlignImpl (void *&a_block) override
 
virtual const char * GetName () const =0
 
virtual void * Allocate (std::size_t a_size, std::uint32_t a_alignment)=0
 
virtual void Deallocate (void *a_mem, std::uint32_t)=0
 
virtual bool PointerInHeap (const void *a_pointer) const =0
 
virtual std::size_t TotalSize (const void *a_pointer) const =0
 
virtual void GetHeapStats (HeapStats *a_stats, bool a_fullBlockInfo)=0
 
virtual bool ShouldTrySmallBlockPools (std::size_t a_size, MEM_CONTEXT a_context)=0
 
virtual std::uint32_t GetPageSize () const =0
 
- Public Member Functions inherited from RE::IMemoryStore
 ~IMemoryStore () override=default
 
virtual void * AllocateAlignImpl (std::size_t a_size, std::uint32_t a_alignment)=0
 
virtual void DeallocateAlignImpl (void *&a_block)=0
 
virtual void * TryAllocateImpl (std::size_t a_size, std::uint32_t a_alignment)
 
void * AllocateAlign (std::size_t a_size, std::uint32_t a_alignment)
 
void DeallocateAlign (void *&a_freeBlock)
 
- Public Member Functions inherited from RE::IMemoryStoreBase
virtual ~IMemoryStoreBase ()=default
 
virtual std::size_t Size (const void *a_mem) const =0
 
virtual void GetMemoryStats (MemoryStats *a_stats)=0
 
virtual bool ContainsBlockImpl (const void *a_block) const =0
 

Public Attributes

std::size_t memSize
 
const char * name
 
void * memoryBase
 
void * nextFreeMem
 
std::uint32_t unk28
 
BSSpinLock unk2C
 
std::uint32_t unk34
 

Static Public Attributes

static constexpr auto RTTI = RTTI_ZeroOverheadHeap
 
- Static Public Attributes inherited from RE::IMemoryHeap
static constexpr auto RTTI = RTTI_IMemoryHeap
 
- Static Public Attributes inherited from RE::IMemoryStore
static constexpr auto RTTI = RTTI_IMemoryStore
 
- Static Public Attributes inherited from RE::IMemoryStoreBase
static constexpr auto RTTI = RTTI_IMemoryStoreBase
 

Constructor & Destructor Documentation

◆ ~ZeroOverheadHeap()

RE::ZeroOverheadHeap::~ZeroOverheadHeap ( )
override

Member Function Documentation

◆ Allocate()

void * RE::ZeroOverheadHeap::Allocate ( std::size_t  a_size,
std::uint32_t  a_alignment 
)
overridevirtual

Implements RE::IMemoryHeap.

◆ AllocateAlignImpl()

void * RE::ZeroOverheadHeap::AllocateAlignImpl ( std::size_t  a_size,
std::uint32_t  a_alignment 
)
overridevirtual

Reimplemented from RE::IMemoryHeap.

◆ ContainsBlockImpl()

bool RE::ZeroOverheadHeap::ContainsBlockImpl ( const void *  a_block) const
overridevirtual

Reimplemented from RE::IMemoryHeap.

◆ Deallocate()

void RE::ZeroOverheadHeap::Deallocate ( void *  a_pointer,
std::uint32_t   
)
overridevirtual

Implements RE::IMemoryHeap.

◆ GetHeapStats()

void RE::ZeroOverheadHeap::GetHeapStats ( HeapStats a_stats,
bool  a_fullBlockInfo 
)
overridevirtual

Implements RE::IMemoryHeap.

◆ GetMemoryStats()

void RE::ZeroOverheadHeap::GetMemoryStats ( MemoryStats a_stats)
overridevirtual

Implements RE::IMemoryStoreBase.

◆ GetName()

const char * RE::ZeroOverheadHeap::GetName ( ) const
overridevirtual

Implements RE::IMemoryHeap.

◆ GetPageSize()

std::uint32_t RE::ZeroOverheadHeap::GetPageSize ( ) const
overridevirtual

Implements RE::IMemoryHeap.

◆ PointerInHeap()

bool RE::ZeroOverheadHeap::PointerInHeap ( const void *  a_pointer) const
overridevirtual

Implements RE::IMemoryHeap.

◆ ShouldTrySmallBlockPools()

bool RE::ZeroOverheadHeap::ShouldTrySmallBlockPools ( std::size_t  a_size,
MEM_CONTEXT  a_context 
)
overridevirtual

Implements RE::IMemoryHeap.

◆ Size()

std::size_t RE::ZeroOverheadHeap::Size ( const void *  a_block) const
overridevirtual

Implements RE::IMemoryStoreBase.

◆ TotalSize()

std::size_t RE::ZeroOverheadHeap::TotalSize ( const void *  a_pointer) const
overridevirtual

Implements RE::IMemoryHeap.

Member Data Documentation

◆ memoryBase

void* RE::ZeroOverheadHeap::memoryBase

◆ memSize

std::size_t RE::ZeroOverheadHeap::memSize

◆ name

const char* RE::ZeroOverheadHeap::name

◆ nextFreeMem

void* RE::ZeroOverheadHeap::nextFreeMem

◆ RTTI

constexpr auto RE::ZeroOverheadHeap::RTTI = RTTI_ZeroOverheadHeap
inlinestaticconstexpr

◆ unk28

std::uint32_t RE::ZeroOverheadHeap::unk28

◆ unk2C

BSSpinLock RE::ZeroOverheadHeap::unk2C
mutable

◆ unk34

std::uint32_t RE::ZeroOverheadHeap::unk34

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