8 #ifndef Navigation_ArrayTLS_H
9 #define Navigation_ArrayTLS_H
24 class KyArrayTLS :
public KyArrayDH<T, MemStat_NavDataGen>
28 typedef KyArrayTLS SelfType;
29 typedef KyArrayDH<T, MemStat_NavDataGen> BaseType;
31 KyArrayTLS() : BaseType(GeneratorMemory::TlsHeap()) {}
32 explicit KyArrayTLS(
int size) : BaseType(GeneratorMemory::TlsHeap(), size) {}
33 KyArrayTLS(
const SelfType& a) : BaseType(a) {}
34 const SelfType& operator=(
const SelfType& a) { BaseType::operator=(a);
return *
this; }
37 bool DoesContain(
const ValueType& value)
const {
return ArrayAlg::DoesContain<SelfType,ValueType>(*
this, value); }
38 void RemoveConsecutiveDuplicates() {
return ArrayAlg::RemoveConsecutiveDuplicates<SelfType>(*this); }
45 class KyArrayTLS_POD :
public ArrayDH_POD<T, MemStat_NavDataGen>
49 typedef KyArrayTLS_POD SelfType;
50 typedef ArrayDH_POD<T, MemStat_NavDataGen> BaseType;
52 KyArrayTLS_POD() : BaseType(GeneratorMemory::TlsHeap()) {}
53 explicit KyArrayTLS_POD(
int size) : BaseType(GeneratorMemory::TlsHeap(), size) {}
54 KyArrayTLS_POD(
const SelfType& a) : BaseType(a) {}
55 const SelfType& operator=(
const SelfType& a) { BaseType::operator=(a);
return *
this; }
58 bool DoesContain(
const ValueType& value)
const {
return ArrayAlg::DoesContain<SelfType,ValueType>(*
this, value); }
59 void RemoveConsecutiveDuplicates() {
return ArrayAlg::RemoveConsecutiveDuplicates<SelfType>(*this); }
65 class KyArrayTLS_CPP :
public ArrayDH_CPP<T, MemStat_NavDataGen>
69 typedef KyArrayTLS_CPP SelfType;
70 typedef ArrayDH_CPP<T, MemStat_NavDataGen> BaseType;
72 KyArrayTLS_CPP() : BaseType(GeneratorMemory::TlsHeap()) {}
73 explicit KyArrayTLS_CPP(
int size) : BaseType(GeneratorMemory::TlsHeap(), size) {}
74 KyArrayTLS_CPP(
const SelfType& a) : BaseType(a) {}
75 const SelfType& operator=(
const SelfType& a) { BaseType::operator=(a);
return *
this; }
78 bool DoesContain(
const ValueType& value)
const {
return ArrayAlg::DoesContain<SelfType,ValueType>(*
this, value); }
79 void RemoveConsecutiveDuplicates() {
return ArrayAlg::RemoveConsecutiveDuplicates<SelfType>(*this); }
82 class BitFieldTLS :
public BitFieldBase
86 explicit BitFieldTLS() : BitFieldBase() {}
87 explicit BitFieldTLS(
KyUInt32 bitsCount) : BitFieldBase() { Resize(bitsCount); }
88 void Resize(
KyUInt32 newBitsCount) { Resize_(newBitsCount, MemStat_NavDataGen, GeneratorMemory::TlsHeap()); }
89 void Reserve(
KyUInt32 newBitsCount) { Reserve_(newBitsCount, MemStat_NavDataGen, GeneratorMemory::TlsHeap()); }
92 template <
class T,
typename Comparator = DefaultLess<T>,
typename BinaryHeapIndexTracker = BinaryHeapIndexTracker_None<T> >
93 class BinaryHeapTls :
public BinaryHeap<T, KyArrayTLS<T>, Comparator, BinaryHeapIndexTracker>
97 template <
class T,
typename Comparator = DefaultLess<T>,
typename BinaryHeapIndexTracker = BinaryHeapIndexTracker_None<T> >
98 class BinaryHeapTLS_CPP :
public BinaryHeap<T, KyArrayTLS_CPP<T>, Comparator, BinaryHeapIndexTracker>
106 #endif // Navigation_ArrayTLS_H
Definition: gamekitcrowddispersion.h:20
#define KY_DEFINE_NEW_DELETE_OPERATORS(MemStat)
This macro defines new and delete operators.
Definition: memory.h:137
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36