CommonLibSSE (Parapets fork)
RE::IMemoryHeap Class Referenceabstract

#include <IMemoryHeap.h>

Inheritance diagram for RE::IMemoryHeap:
RE::IMemoryStore RE::IMemoryStoreBase RE::AbstractHeap RE::ZeroOverheadHeap RE::bhkThreadMemorySource RE::MemoryHeap

Public Member Functions

 ~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 * TryAllocateImpl ([[maybe_unused]] std::size_t a_size, [[maybe_unused]] 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
 

Static Public Attributes

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

◆ ~IMemoryHeap()

RE::IMemoryHeap::~IMemoryHeap ( )
overridedefault

Member Function Documentation

◆ Allocate()

virtual void* RE::IMemoryHeap::Allocate ( std::size_t  a_size,
std::uint32_t  a_alignment 
)
pure virtual

◆ AllocateAlignImpl()

void* RE::IMemoryHeap::AllocateAlignImpl ( std::size_t  a_size,
std::uint32_t  a_alignment 
)
inlineoverridevirtual

Implements RE::IMemoryStore.

Reimplemented in RE::ZeroOverheadHeap.

◆ ContainsBlockImpl()

bool RE::IMemoryHeap::ContainsBlockImpl ( const void *  a_block) const
inlineoverridevirtual

Implements RE::IMemoryStoreBase.

Reimplemented in RE::ZeroOverheadHeap.

◆ Deallocate()

virtual void RE::IMemoryHeap::Deallocate ( void *  a_mem,
std::uint32_t   
)
pure virtual

◆ DeallocateAlignImpl()

void RE::IMemoryHeap::DeallocateAlignImpl ( void *&  a_block)
inlineoverridevirtual

Implements RE::IMemoryStore.

◆ GetHeapStats()

virtual void RE::IMemoryHeap::GetHeapStats ( HeapStats a_stats,
bool  a_fullBlockInfo 
)
pure virtual

◆ GetName()

virtual const char* RE::IMemoryHeap::GetName ( ) const
pure virtual

◆ GetPageSize()

virtual std::uint32_t RE::IMemoryHeap::GetPageSize ( ) const
pure virtual

◆ PointerInHeap()

virtual bool RE::IMemoryHeap::PointerInHeap ( const void *  a_pointer) const
pure virtual

◆ ShouldTrySmallBlockPools()

virtual bool RE::IMemoryHeap::ShouldTrySmallBlockPools ( std::size_t  a_size,
MEM_CONTEXT  a_context 
)
pure virtual

◆ TotalSize()

virtual std::size_t RE::IMemoryHeap::TotalSize ( const void *  a_pointer) const
pure virtual

Member Data Documentation

◆ RTTI

constexpr auto RE::IMemoryHeap::RTTI = RTTI_IMemoryHeap
inlinestaticconstexpr

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