11#ifndef INCGUARD_MGL_MEMORY_FIXED_SIZE_ALLOCATOR_H_1653211251 
   12#define INCGUARD_MGL_MEMORY_FIXED_SIZE_ALLOCATOR_H_1653211251 
   32    enum class Tag : int8_t
 
 
   56    static_assert(
sizeof(Header) <= 16);    
 
   58    bool Initialize(
Tag tag, 
size_t blockSize, 
size_t blockCount) 
noexcept;
 
   68        _altAllocator = altAllocator;
 
 
  101        const std::lock_guard lock(_mutex);
 
 
  116    void *
Allocate(
size_t size) 
noexcept;
 
  121    size_t _blockSize{0};
 
  122    size_t _blockCount{0};
 
  123    std::unique_ptr<std::byte[]> _pool{
nullptr};
 
  125    std::unique_ptr<Block[]> _blockArray{
nullptr};
 
  126    Block *_topBlock{
nullptr};
 
  127    size_t _freeCount{0};
 
  128    FixedSizeAllocator *_altAllocator{
nullptr};
 
 
固定サイズアロケータクラス
Definition mgl_memory_fixed_size_allocator.h:21
 
void Deallocate(void *buffer) noexcept
デアロケート
Definition mgl_memory_fixed_size_allocator.cc:117
 
constexpr size_t GetCapacity() const noexcept
確保可能な最大数を取得
Definition mgl_memory_fixed_size_allocator.h:88
 
void * Allocate(size_t size) noexcept
アロケート
Definition mgl_memory_fixed_size_allocator.cc:76
 
Tag
アロケータの種類を判別するためのタグ
Definition mgl_memory_fixed_size_allocator.h:33
 
@ Fixed3
インデックス3の固定サイズアロケータ
 
@ Fixed1
インデックス1の固定サイズアロケータ
 
@ Fixed0
インデックス0の固定サイズアロケータ
 
@ Fixed2
インデックス2の固定サイズアロケータ
 
size_t GetFreeCount() noexcept
利用可能なブロック数を取得
Definition mgl_memory_fixed_size_allocator.h:99
 
bool Initialize(Tag tag, size_t blockSize, size_t blockCount) noexcept
初期化
Definition mgl_memory_fixed_size_allocator.cc:26
 
size_t GetUsedCount() noexcept
利用中のブロック数を取得
Definition mgl_memory_fixed_size_allocator.h:111
 
constexpr void SetAltAllocator(FixedSizeAllocator *altAllocator) noexcept
代替アロケータを設定
Definition mgl_memory_fixed_size_allocator.h:66
 
constexpr size_t GetBlockSize() const noexcept
ブロックサイズを取得
Definition mgl_memory_fixed_size_allocator.h:77
 
メモリブロック情報
Definition mgl_memory_fixed_size_allocator.h:25
 
void * address
メモリブロックのアドレス
Definition mgl_memory_fixed_size_allocator.h:26
 
Block * next
次のメモリブロック
Definition mgl_memory_fixed_size_allocator.h:27