固定メモリサイズの領域を確保・解放するためのヒープです。所謂プールアロケータです。
[詳解]
#include "nn/nlib/heap/UnitHeap.h"
固定メモリサイズの領域を確保・解放するためのヒープです。所謂プールアロケータです。
UnitHeap.h の 29 行目に定義があります。
◆ Alloc()
nn::nlib::heap::UnitHeap::Alloc |
( |
| ) |
|
|
noexcept |
メモリブロックを確保します。
- 戻り値
- 確保されたメモリへのポインタ。失敗した場合は
NULL
◆ Free()
nn::nlib::heap::UnitHeap::Free |
( |
void * |
p | ) |
|
|
noexcept |
メモリをヒープに返却します。
- 引数
-
- 戻り値
- 0ならば成功。0以外の場合はポインタが不正です。
◆ GetAllocatedCount()
nn::nlib::heap::UnitHeap::GetAllocatedCount |
( |
| ) |
const |
|
inlinenoexcept |
現在このヒープから確保されている領域の個数を返します。
- 戻り値
- 現在確保されている領域の個数
UnitHeap.h の 46 行目に定義があります。
◆ GetUnitCount()
nn::nlib::heap::UnitHeap::GetUnitCount |
( |
| ) |
const |
|
inlinenoexcept |
◆ GetUnitSize()
nn::nlib::heap::UnitHeap::GetUnitSize |
( |
| ) |
const |
|
inlinenoexcept |
このヒープからアロケートされる領域の1つあたりのサイズを返します。
- 戻り値
- 領域のサイズ
UnitHeap.h の 44 行目に定義があります。
◆ Init()
nn::nlib::heap::UnitHeap::Init |
( |
void * |
start, |
|
|
size_t |
size, |
|
|
DestructorHandler |
handler, |
|
|
size_t |
unit, |
|
|
size_t |
algn, |
|
|
uint32_t |
heap_option |
|
) |
| |
|
noexcept |
ユニットヒープを初期化します。
- 引数
-
[in] | start | ヒープの開始位置へのポインタ |
[in] | size | ヒープのサイズ |
[in] | handler | デストラクタ実行時に呼び出される関数へのポインタ |
[in] | unit | 割り当てられる領域1つあたりのサイズ |
[in] | algn | 領域のアライメント |
[in] | heap_option | 値は利用されません |
- 戻り値
- 初期化に成功した場合は0, それ以外の場合は失敗。
- 説明
- プールアロケータが通常保持するフリーリストの初期化は、実際にメモリが確保され解放されるまで遅延されるので、大量のメモリをヒープに与えた場合でも比較的短時間で初期化を行うことができます。
このクラス詳解は次のファイルから抽出されました: