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::AllocatorBase Class Reference

#include <AllocatorBase.h>

Inherits AZ::IAllocator.

Inherited by AZ::SimpleSchemaAllocator< Schema, true, false >, AZ::SimpleSchemaAllocator< PoolSchema, true, false >, AZ::OSAllocator, AZ::SimpleSchemaAllocator< Schema, ProfileAllocations, ReportOutOfMemory >, and AZ::SystemAllocator.

Public Member Functions

const Debug::AllocationRecordsGetRecords () const override
 Returns a pointer to the allocation records. They might be available or not depending on the build type. Debug::AllocationRecords.
 
void SetRecords (Debug::AllocationRecords *records) final
 Sets the allocation records.
 
bool IsReady () const final
 Returns true if this allocator is ready to use.
 
void PostCreate () override
 All conforming allocators must call PostCreate() after their custom Create() method in order to be properly registered.
 
void PreDestroy () final
 All conforming allocators must call PreDestroy() before their custom Destroy() method in order to be properly deregistered.
 
void SetProfilingActive (bool active) final
 
bool IsProfilingActive () const final
 Returns true if profiling calls will be made.
 
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 ()
 
- 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.
 

Protected Member Functions

AZ_FORCE_INLINE size_t MemorySizeAdjustedUp (size_t byteSize) const
 Returns the size of a memory allocation after adjusting for tracking.
 
AZ_FORCE_INLINE size_t MemorySizeAdjustedDown (size_t byteSize) const
 Returns the size of a memory allocation, removing any tracking overhead.
 
void DisableRegistration ()
 
void ProfileAllocation (void *ptr, size_t byteSize, size_t alignment, int suppressStackRecord)
 Records an allocation for profiling.
 
void ProfileDeallocation (void *ptr, size_t byteSize, size_t alignment, Debug::AllocationInfo *info)
 Records a deallocation for profiling.
 
void ProfileReallocation (void *ptr, void *newPtr, size_t newSize, size_t newAlignment)
 Records a reallocation for profiling.
 
void ProfileResize (void *ptr, size_t newSize)
 Records a resize for profiling.
 
bool OnOutOfMemory (size_t byteSize, size_t alignment)
 User allocator should call this function when they run out of memory!
 
- 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.
 

Additional Inherited Members

- Public Attributes inherited from AZ::IAllocator
size_type newSize
 

Detailed Description

AllocatorBase - all AZ-compatible allocators should inherit from this implementation of IAllocator.

Member Function Documentation

◆ DisableRegistration()

void AZ::AllocatorBase::DisableRegistration ( )
protected

Call to disallow this allocator from being registered with the AllocatorManager. Only kernel-level allocators where it would be especially problematic for them to be registered with the AllocatorManager should do this.

◆ GetRecords() [1/2]

virtual const Debug::AllocationRecords * AZ::IAllocator::GetRecords ( ) const
inlinevirtual

Returns a pointer to the allocation records. They might be available or not depending on the build type. Debug::AllocationRecords.

Reimplemented from AZ::IAllocator.

◆ GetRecords() [2/2]

const Debug::AllocationRecords * AZ::AllocatorBase::GetRecords ( ) const
overridevirtual

Returns a pointer to the allocation records. They might be available or not depending on the build type. Debug::AllocationRecords.

Reimplemented from AZ::IAllocator.

◆ IsProfilingActive()

bool AZ::AllocatorBase::IsProfilingActive ( ) const
finalvirtual

Returns true if profiling calls will be made.

Reimplemented from AZ::IAllocator.

◆ IsReady()

bool AZ::AllocatorBase::IsReady ( ) const
finalvirtual

Returns true if this allocator is ready to use.

Reimplemented from AZ::IAllocator.

◆ PostCreate()

void AZ::AllocatorBase::PostCreate ( )
overridevirtual

All conforming allocators must call PostCreate() after their custom Create() method in order to be properly registered.

Reimplemented from AZ::IAllocator.

◆ PreDestroy()

void AZ::AllocatorBase::PreDestroy ( )
finalvirtual

All conforming allocators must call PreDestroy() before their custom Destroy() method in order to be properly deregistered.

Reimplemented from AZ::IAllocator.

◆ SetProfilingActive()

void AZ::AllocatorBase::SetProfilingActive ( bool  active)
finalvirtual

Sets whether profiling calls should be made. This is primarily a performance compromise, as the profiling calls go out on an EBus that may not exist if not activated, and will result in an expensive hash lookup if that is the case.

Reimplemented from AZ::IAllocator.

◆ SetRecords()

void AZ::AllocatorBase::SetRecords ( Debug::AllocationRecords records)
finalvirtual

Sets the allocation records.

Reimplemented from AZ::IAllocator.


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