3 #ifndef INCLUDE_NN_NLIB_HEAP_UNITHEAP_H_
4 #define INCLUDE_NN_NLIB_HEAP_UNITHEAP_H_
9 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS)
10 #undef NLIB_VIS_PUBLIC
11 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT
19 typedef void (*DestructorHandler)(
void* start,
void* end);
25 (*m_Handler)(m_Start, m_End);
28 errno_t Initialize(
void* start,
size_t size, DestructorHandler handler,
size_t unit,
30 void* Alloc() NLIB_NOEXCEPT;
31 errno_t Free(
void* p) NLIB_NOEXCEPT;
32 size_t GetUnitSize() const NLIB_NOEXCEPT {
return m_UnitSize; }
35 void Dump() NLIB_NOEXCEPT;
43 size_t m_BaseUnitCount;
46 size_t m_AllocatedCount;
48 uint32_t m_HeapOption;
51 DestructorHandler m_Handler;
57 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS)
58 #undef NLIB_VIS_PUBLIC
59 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT
62 #endif // INCLUDE_NN_NLIB_HEAP_UNITHEAP_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
固定メモリサイズの領域を確保・解放するためのヒープです。所謂プールアロケータです。 ...
size_t GetUnitCount() const noexcept
このヒープからアロケートできる領域の個数を返します。
size_t GetAllocatedCount() const noexcept
現在このヒープから確保されている領域の個数を返します。