gwnavgeneration/common/generatormemoryheap.h Source File
Go to the documentation of this file.
8 #ifndef GwNavGen_GeneratorMemoryHeap_H
9 #define GwNavGen_GeneratorMemoryHeap_H
19 class GeneratorSysAlloc;
23 class GeneratorMemoryHeap :
public MemoryHeap
26 enum HeapType { HeapType_System, HeapType_Tls, HeapType_Magic };
27 static bool InitMemorySystem(GeneratorSysAlloc* sysAlloc, GeneratorSysAlloc::AllocType allocType);
28 static void CleanUpMemorySystem();
29 static bool InitTlsAlloc(ITlsAlloc* tlsAlloc);
30 static void ClearTlsAlloc();
33 GeneratorMemoryHeap(HeapType heapType) : m_heapType(heapType) {}
36 virtual void* Alloc(UPInt size,
const AllocInfo* info = 0);
37 virtual void* Alloc(UPInt size, UPInt align,
const AllocInfo* info = 0);
38 virtual void* Realloc(
void* oldPtr, UPInt newSize);
39 virtual void* ReallocAutoHeap(
void* oldPtr, UPInt newSize);
40 virtual void Free(
void* ptr);
41 virtual void* AllocSysDirect(UPInt size);
42 virtual void FreeSysDirect(
void* ptr, UPInt size);
43 virtual void* AllocAutoHeap(
const void* thisPtr, UPInt size, UPInt align,
const AllocInfo* info = 0);
44 virtual void* AllocAutoHeap(
const void* thisPtr, UPInt size,
const AllocInfo* info = 0);
45 virtual MemoryHeap* GetAllocHeap(
const void* thisPtr);
48 virtual void* InternalAlloc(UPInt size,
const AllocInfo* info) = 0;
49 virtual void* InternalRealloc(
void* oldPtr, UPInt newSize) = 0;
50 virtual void InternalFree(
void* ptr) = 0;
53 virtual void CreateArena(UPInt , SysAllocPaged* ) {}
54 virtual void DestroyArena(UPInt ) {}
55 virtual bool ArenaIsEmpty(UPInt ) {
return true; }
56 virtual MemoryHeap* CreateHeap(
const char* name,
const HeapDesc& desc) { KY_UNUSED2(name, desc);
return this; }
57 virtual void SetLimitHandler(LimitHandler* ) {}
58 virtual void SetLimit(UPInt ) {}
59 virtual void AddRef() {}
60 virtual void Release() {}
61 virtual UPInt GetUsableSize(
const void* ptr) { KY_UNUSED(ptr);
return 0; }
62 virtual bool GetStats(StatBag* ) {
return false; }
63 virtual UPInt GetFootprint()
const {
return 0; }
64 virtual UPInt GetTotalFootprint()
const {
return 0; }
65 virtual UPInt GetUsedSpace()
const {
return 0; }
66 virtual UPInt GetTotalUsedSpace()
const {
return 0; }
67 virtual void GetRootStats(RootStats* ) {}
68 virtual void VisitMem(Heap::MemVisitor* ,
unsigned ) {}
69 virtual void VisitRootSegments(Heap::SegVisitor* ) {}
70 virtual void VisitHeapSegments(Heap::SegVisitor* )
const {}
71 virtual void SetTracer(HeapTracer* ) {}
74 virtual void destroyItself() {}
75 virtual void ultimateCheck() {}
76 virtual void releaseCachedMem() {}
77 virtual bool dumpMemoryLeaks() {
return false; }
78 virtual void checkIntegrity()
const {}
79 virtual void getUserDebugStats(RootStats* )
const {}
Definition: gamekitcrowddispersion.h:20