gwnavruntime/kernel/SF_ArrayStaticBuff.h Source File
Go to the documentation of this file.
17 #ifndef INC_KY_Kernel_ArrayStaticBuff_H
18 #define INC_KY_Kernel_ArrayStaticBuff_H
26 template<
class T,
int StaticSize,
int SID=Stat_Default_Mem>
class ArrayStaticBuffPOD
31 ArrayStaticBuffPOD(MemoryHeap* heap = 0) :
32 pHeap(heap), Size(0), Reserved(StaticSize), Data(Static)
48 void PushBack(
const T& val)
50 if (Size < StaticSize)
55 if (Size == StaticSize)
58 Data = (T*)(pHeap ? KY_HEAP_ALLOC(pHeap, Reserved *
sizeof(T), SID):
59 KY_HEAP_AUTO_ALLOC_ID(
this, Reserved *
sizeof(T), SID));
60 memcpy(Data, Static,
sizeof(Static));
66 Data = (T*)(pHeap ? Memory::ReallocInHeap(pHeap, Data, Reserved *
sizeof(T)) :
67 Memory::Realloc( Data, Reserved *
sizeof(T)));
77 void CutAt(UPInt size)
83 const T& operator [] (UPInt i)
const {
return Data[i]; }
84 T& operator [] (UPInt i) {
return Data[i]; }
85 const T& At(UPInt i)
const {
return Data[i]; }
86 T& At(UPInt i) {
return Data[i]; }
87 T ValueAt(UPInt i)
const {
return Data[i]; }
91 ArrayStaticBuffPOD(
const ArrayStaticBuffPOD<T, StaticSize, SID>& v);
92 const ArrayStaticBuffPOD<T, StaticSize, SID>& operator = (
const ArrayStaticBuffPOD<T, StaticSize, SID>& v);
97 ValueType Static[StaticSize];
102 template<
class T,
int StaticSize,
int SID=Stat_Default_Mem>
class ArrayStaticBuff
107 ArrayStaticBuff(MemoryHeap* heap = 0) :
108 pHeap(heap), Size(0), Reserved(StaticSize), Data(Static)
121 DestructArray(Data, Size);
128 void PushBack(
const T& val)
130 if (Size < StaticSize)
132 Static[Size++] = val;
135 if (Size == StaticSize)
138 Data = (T*)(pHeap ? KY_HEAP_ALLOC(pHeap, Reserved *
sizeof(T), SID):
139 KY_HEAP_AUTO_ALLOC_ID(
this, Reserved *
sizeof(T), SID));
140 memcpy(Data, Static,
sizeof(Static));
141 ConstructArray(Data + Size, Reserved - Size, T());
143 else if (Size >= Reserved)
146 Data = (T*)(pHeap ? Memory::ReallocInHeap(pHeap, Data, Reserved *
sizeof(T)) :
147 Memory::Realloc( Data, Reserved *
sizeof(T)));
148 ConstructArray(Data + Size, Reserved - Size, T());
153 UPInt GetSize()
const
158 const T& operator [] (UPInt i)
const {
return Data[i]; }
159 T& operator [] (UPInt i) {
return Data[i]; }
160 const T& At(UPInt i)
const {
return Data[i]; }
161 T& At(UPInt i) {
return Data[i]; }
162 T ValueAt(UPInt i)
const {
return Data[i]; }
166 ArrayStaticBuff(
const ArrayStaticBuff<T, StaticSize, SID>& v);
167 const ArrayStaticBuff<T, StaticSize, SID>& operator = (
const ArrayStaticBuff<T, StaticSize, SID>& v);
172 ValueType Static[StaticSize];
Definition: gamekitcrowddispersion.h:20