3#include <Foundation/Containers/DynamicArray.h>
4#include <Foundation/Memory/MemoryTracker.h>
5#include <Foundation/Memory/PageAllocator.h>
6#include <Foundation/System/SystemInformation.h>
7#include <Foundation/Threading/Lock.h>
8#include <Foundation/Threading/Mutex.h>
9#include <Foundation/Threading/ThreadUtils.h>
12template <
typename T, plUInt32 SizeInBytes>
15 PL_DECLARE_POD_TYPE();
19 SIZE_IN_BYTES = SizeInBytes,
20 CAPACITY = SIZE_IN_BYTES /
sizeof(T)
31 T& operator[](plUInt32 uiIndex)
const;
38template <plUInt32 BlockSizeInByte>
59 void* Allocate(
size_t uiAlign);
60 void Deallocate(
void* ptr);
63 plAllocatorTrackingMode m_TrackingMode;
66 plThreadID m_ThreadID;
70 PL_DECLARE_POD_TYPE();
75 SIZE_IN_BYTES = BlockSizeInByte * NUM_BLOCKS
80 plUInt32 m_uiUsedBlocks;
87#include <Foundation/Memory/Implementation/LargeBlockAllocator_inl.h>
Base class for all memory allocators.
Definition Allocator.h:23
Definition DynamicArray.h:81
A block allocator which can only allocates blocks of memory at once.
Definition LargeBlockAllocator.h:40
Provides a simple mechanism for mutual exclusion to prevent multiple threads from accessing a shared ...
Definition Mutex.h:13
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Definition Allocator.h:26
This struct represents a block of type T, typically 4kb.
Definition LargeBlockAllocator.h:14