11#ifndef INCGUARD_MGL_MEMORY_DEFAULT_ALLOCATOR_H_1651231444
12#define INCGUARD_MGL_MEMORY_DEFAULT_ALLOCATOR_H_1651231444
38 void *(*allocator)(
size_t size){
nullptr};
56 AllocatorType
GetType() const noexcept
override
61 bool Initialize(
const Configuration &config)
noexcept;
65 [[nodiscard]]
void *
Allocate(
size_t size) noexcept override;
66 void Deallocate(
void *buffer) noexcept override;
68 bool GetSizeInfo(
size_t &dest, uint32_t key, uint32_t arg) noexcept override;
71 bool _isInitialized{
false};
74 static constexpr size_t kFixedSizeAllocatorCount = 4;
76 Configuration _config;
77 std::array<FixedSizeAllocator, kFixedSizeAllocatorCount> _fixedSizeAllocatorArray;
78 size_t _fixedSizeBlockMax{0};
81 std::atomic<size_t> _systemUsedCount{0};
82 std::atomic<size_t> _systemUsedSize{0};
メモリアロケータインターフェース
Definition mgl_memory_allocator.h:42
デフォルトのメモリアロケータ
Definition mgl_memory_default_allocator.h:26
AllocatorType GetType() const noexcept override
このアロケータを表す値を取得
Definition mgl_memory_default_allocator.h:56
static constexpr AllocatorType kAllocatorType
このアロケータを表す値
Definition mgl_memory_default_allocator.h:47
bool GetSizeInfo(size_t &dest, uint32_t key, uint32_t arg) noexcept override
サイズ情報を取得
Definition mgl_memory_default_allocator.cc:227
void Deallocate(void *buffer) noexcept override
デアロケート
Definition mgl_memory_default_allocator.cc:196
bool Initialize() noexcept override
初期化処理
Definition mgl_memory_default_allocator.cc:127
void * Allocate(size_t size) noexcept override
アロケート
Definition mgl_memory_default_allocator.cc:153
bool IsInitialized() const noexcept override
初期化状態を取得
Definition mgl_memory_default_allocator.cc:140
DefaultAllocator() noexcept
コンストラクタ
Definition mgl_memory_default_allocator.cc:34
デフォルトアロケータの設定
Definition mgl_memory_default_allocator.h:30
size_t fixedSizeAllocatorMinimumBlockSize
固定サイズアロケータの最小サイズ(2のn乗の値である必要がある)
Definition mgl_memory_default_allocator.h:32
void(* deallocator)(void *buffer)
固定サイズアロケータが使用できない場合のデアロケータの指定(nullptr で free()を使用)
Definition mgl_memory_default_allocator.h:41
size_t fixedSizeAllocatorMemoryPoolSize
固定サイズアロケータのメモリプールのサイズ(最小サイズの8倍より大きくなければならない)
Definition mgl_memory_default_allocator.h:35