gwnavgeneration/common/generatormemory.h Source File
Go to the documentation of this file.
8 #ifndef GwNavGen_GeneratorMemory_H
9 #define GwNavGen_GeneratorMemory_H
21 class ITlsAlloc :
public RefCountBaseV<ITlsAlloc, MemStat_NavDataGen>
24 virtual ~ITlsAlloc() {}
25 virtual void* Alloc(UPInt size) = 0;
26 virtual void Free(
void* ptr) = 0;
27 virtual void* Realloc(
void* oldPtr, UPInt newSize) = 0;
31 class GeneratorMemoryHeap;
36 static void InitTlsAlloc(ITlsAlloc* tlsAlloc);
37 static void ClearTlsAlloc();
39 static MemoryHeap* GlobalHeap() {
return Memory::pGlobalHeap; }
40 static MemoryHeap* SysHeap() {
return s_sysHeap; }
41 static MemoryHeap* TlsHeap() {
return s_tlsHeap; }
42 static MemoryHeap* MagicHeap() {
return s_magicHeap; }
45 static MemoryHeap* s_sysHeap;
46 static MemoryHeap* s_tlsHeap;
47 static MemoryHeap* s_magicHeap;
53 class GeneratorSysAlloc :
public SysAllocBase
56 GeneratorSysAlloc() { Clear(); }
57 virtual ~GeneratorSysAlloc() {}
59 enum AllocType { SlowSimpleAlloc = 0, FastMixedAlloc = 1 };
65 void SetAllocType(AllocType allocType)
67 if (m_heapEngineInitialized ==
false)
68 m_allocType = allocType;
72 virtual void* Alloc(UPInt size, UPInt align) = 0;
73 virtual void Free(
void* ptr, UPInt size, UPInt align) = 0;
74 virtual void* Realloc(
void* oldPtr, UPInt oldSize, UPInt newSize, UPInt align) = 0;
78 virtual bool initHeapEngine(
const void* heapDesc);
79 virtual void shutdownHeapEngine();
83 m_allocType = FastMixedAlloc;
84 m_heapEngineInitialized =
false;
88 AllocType m_allocType;
89 bool m_heapEngineInitialized;
98 class GeneratorSysAllocMalloc :
public SysAllocBase_SingletonSupport<GeneratorSysAllocMalloc, GeneratorSysAlloc>
101 GeneratorSysAllocMalloc() {}
102 virtual ~GeneratorSysAllocMalloc() {}
105 virtual void* Alloc(UPInt size, UPInt align) {
return StraightSysAllocMalloc::Alloc(size, align); }
106 virtual void Free(
void* ptr, UPInt size, UPInt align) {
return StraightSysAllocMalloc::Free(ptr, size, align); }
107 virtual void* Realloc(
void* oldPtr, UPInt oldSize, UPInt newSize, UPInt align) {
return StraightSysAllocMalloc::Realloc(oldPtr, oldSize, newSize, align); }
Definition: gamekitcrowddispersion.h:20