Open 3D Engine AzCore API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::HphaSchemaBase< DebugAllocator > Class Template Reference

#include <HphaAllocator.h>

Inherits AZ::IAllocator.

Public Member Functions

 HphaSchemaBase ()
 
pointer allocate (size_type byteSize, size_type alignment) override
 
void deallocate (pointer ptr, size_type byteSize=0, size_type alignment=0) override
 
pointer reallocate (pointer ptr, size_type newSize, size_type newAlignment) override
 
size_type get_allocated_size (pointer ptr, align_type alignment=1) const override
 
size_type NumAllocatedBytes () const override
 
void GarbageCollect () override
 Return unused memory to the OS. Don't call this unless you really need free memory, it is slow.
 
- Public Member Functions inherited from AZ::IAllocator
 AZ_RTTI (IAllocator, "{0A3C59AE-169C-45F6-9423-3B8C89245E2E}")
 
 IAllocator (const IAllocator &)=delete
 
 IAllocator (IAllocator &&)=delete
 
IAllocatoroperator= (const IAllocator &)=delete
 
IAllocatoroperator= (IAllocator &&)=delete
 
virtual pointer allocate (size_type byteSize, align_type alignment=1)=0
 
virtual void deallocate (pointer ptr, size_type byteSize=0, align_type alignment=0)=0
 
virtual pointer reallocate (pointer ptr, size_type newSize, align_type newAlignment=1)=0
 
virtual size_type max_size () const
 
virtual size_type get_allocated_size (pointer ptr, align_type alignment=1) const =0
 
virtual void GarbageCollect ()
 
const char * GetName () const
 
pointer Allocate (size_type byteSize, size_type alignment=1, int flags=0, const char *name=nullptr, const char *fileName=nullptr, int lineNum=0, unsigned int suppressStackRecord=0)
 
void DeAllocate (pointer ptr, size_type byteSize=0, size_type alignment=0)
 
 AZ_DEPRECATED_MESSAGE ("Resize no longer supported, use reallocate instead, note that the pointer address could change, " "Allocators should do best effort to keep the ptr at the same address") size_type Resize(pointer ptr
 
pointer ReAllocate (pointer ptr, size_type newSize, size_type newAlignment)
 
size_type AllocationSize (pointer ptr)
 Returns allocation size for given address. 0 if the address doesn't belong to the allocator.
 
virtual size_type NumAllocatedBytes () const
 
size_type Capacity () const
 
size_type GetMaxAllocationSize () const
 Returns max allocation size if possible. If not returned value is 0.
 
size_type GetMaxContiguousAllocationSize () const
 Returns the maximum contiguous allocation size of a single allocation.
 
size_type GetUnAllocatedMemory (bool isPrint=false) const
 
virtual AllocatorDebugConfig GetDebugConfig ()
 Returns the debug configuration for this allocator.
 
virtual const Debug::AllocationRecordsGetRecords () const
 Returns a pointer to the allocation records. They might be available or not depending on the build type. Debug::AllocationRecords.
 
Debug::AllocationRecordsGetRecords ()
 
virtual void SetRecords (Debug::AllocationRecords *records)
 Sets the allocation records.
 
virtual bool IsReady () const
 Returns true if this allocator is ready to use.
 
virtual void SetProfilingActive (bool active)
 
virtual bool IsProfilingActive () const
 Returns true if profiling calls will be made.
 

Static Public Member Functions

static size_t GetMemoryGuardSize ()
 
static size_t GetFreeLinkSize ()
 

Additional Inherited Members

- Public Attributes inherited from AZ::IAllocator
size_type newSize
 
- Protected Member Functions inherited from AZ::IAllocator
virtual void PostCreate ()
 All conforming allocators must call PostCreate() after their custom Create() method in order to be properly registered.
 
virtual void PreDestroy ()
 All conforming allocators must call PreDestroy() before their custom Destroy() method in order to be properly deregistered.
 
virtual void Destroy ()
 All allocators must provide their deinitialization routine here.
 

Detailed Description

template<bool DebugAllocator = false>
class AZ::HphaSchemaBase< DebugAllocator >

Heap allocator schema, based on Dimitar Lazarov "High Performance Heap Allocator".

Constructor & Destructor Documentation

◆ HphaSchemaBase()

template<bool DebugAllocator = false>
AZ::HphaSchemaBase< DebugAllocator >::HphaSchemaBase ( )

Description - configure the heap allocator. By default we will allocate system memory using system calls. You can provide arena (memory block) with pre-allocated memory.

Member Function Documentation

◆ GarbageCollect()

template<bool DebugAllocator = false>
void AZ::HphaSchemaBase< DebugAllocator >::GarbageCollect ( )
overridevirtual

Return unused memory to the OS. Don't call this unless you really need free memory, it is slow.

Reimplemented from AZ::IAllocator.

◆ get_allocated_size()

template<bool DebugAllocator = false>
size_type AZ::HphaSchemaBase< DebugAllocator >::get_allocated_size ( pointer  ptr,
align_type  alignment = 1 
) const
overridevirtual

Implements AZ::IAllocator.

◆ NumAllocatedBytes()

template<bool DebugAllocator = false>
size_type AZ::HphaSchemaBase< DebugAllocator >::NumAllocatedBytes ( ) const
overridevirtual

Reimplemented from AZ::IAllocator.


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