3 #ifndef INCLUDE_NN_NLIB_HEAP_CENTRALHEAP_H_
4 #define INCLUDE_NN_NLIB_HEAP_CENTRALHEAP_H_
8 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS)
10 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT
20 typedef void (*DestructorHandler)(
void* start,
void* end);
23 m_UseVirtualMemory(false),
29 void Finalize() NLIB_NOEXCEPT;
34 bool IsClean() NLIB_NOEXCEPT;
36 void CalcHeapHash(
HeapHash* hash) NLIB_NOEXCEPT;
44 TlsHeapCentral* m_Central;
45 bool m_UseVirtualMemory;
46 uint32_t m_HeapOption;
55 #if defined(_MSC_VER) && defined(nx_heap_EXPORTS)
56 #undef NLIB_VIS_PUBLIC
57 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT
60 #endif // INCLUDE_NN_NLIB_HEAP_CENTRALHEAP_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
int(* nmalloc_heapwalk_callback)(void *allocated_ptr, size_t size, void *user_ptr)
nmalloc_walk_allocated_ptrs()から呼び出されるユーザー定義のコールバック関数です。 ...
void Dump() const noexcept
DumpEx(NMALLOC_DUMP_BASIC, 1) を実行します。
CentralHeap() noexcept
デフォルトコンストラクタです。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
nmalloc/nfree等が宣言されているファイルです。
~CentralHeap() noexcept
デストラクタです。
static const size_t kPageSize
ヒープのページサイズです(OSのページサイズとの関連性はありません)。
CachedHeapと対になって利用される中央ヒープクラスです。nmalloc()の実装に利用されています。 ...
void DumpEx(NMallocDumpMode mode) const noexcept
詳しくは、nmalloc_dumpex()をご覧下さい。
void * Alloc(size_t n) noexcept
メモリブロックを確保します。
CentralHeapと対になって利用されるスレッド専用キャッシュクラスです。
NMallocDumpMode
nmalloc_dumpex()関数に渡す引数の型です。
ユーザーが利用しているヒープ内のメモリの利用状況のサマリが記述される構造体です。