12#define RTL_TRY_FIND_NODE(NAME, NODE) \
15 if (NAME->fIndex == Index) return NAME->fVal; \
19#define RTL_TRY_FIND_NODE2(NAME, NODE) \
22 if (NAME->fIndex == Index) return Ref<T>{NAME->fVal}; \
26#define RTL_TRY_REMOVE_NODE(NODE) \
27 if (NODE && NODE->fIndex == Index) { \
28 NODE->fUsed = false; \
40template <
typename T, T _PlaceHolderValue>
41class NullableMutableArray;
54template <
typename T, T _PlaceHolderValue>
80 operator bool() {
return Count() > 1; }
87 return _PlaceHolderValue;
104 while (iterationNode) {
105 if (!iterationNode->fUsed) {
106 iterationNode->fVal = val;
107 iterationNode->fIndex = 0;
109 iterationNode->fUsed =
true;
116 iterationNode = iterationNode->fNext;
148 if (!iterationNode) {
155 while (iterationNode) {
156 if (!iterationNode->fUsed) {
157 iterationNode->fVal = val;
158 iterationNode->fIndex = 0;
160 iterationNode->fUsed =
true;
167 iterationNode = iterationNode->fNext;
187 if (first->
fVal == value && first->
fUsed)
return true;
189 first = first->
fNext;
#define NE_COPY_DEFAULT(KLASS)
Definition Detail.h:17
#define MUST_PASS(EXPR)
Definition KernelPanic.h:37
#define RTL_TRY_REMOVE_NODE(NODE)
Definition MutableArray.h:26
#define RTL_TRY_FIND_NODE(NAME, NODE)
Definition MutableArray.h:12
#define RTL_TRY_FIND_NODE2(NAME, NODE)
Definition MutableArray.h:19
Definition MutableArray.h:136
MutableLinkedList< T > * fLastNode
Definition MutableArray.h:197
Boolean Add(const T val)
Definition MutableArray.h:145
bool Contains(T &value)
Definition MutableArray.h:183
Ref< T > operator[](SizeT Index) const
Definition MutableArray.h:174
Kernel::SizeT fNodeCount
Definition MutableArray.h:201
MutableLinkedList< T > * fFirstNode
Definition MutableArray.h:198
SizeT Count() const
Definition MutableArray.h:181
virtual ~MutableArray()=default
Definition MutableArray.h:44
SizeT fIndex
Definition MutableArray.h:47
T fVal
Definition MutableArray.h:46
Boolean fUsed
Definition MutableArray.h:48
MutableLinkedList * fNext
Definition MutableArray.h:51
MutableLinkedList * fPrev
Definition MutableArray.h:50
NullableMutableArray(const NullableMutableArray &)=default
MutableLinkedList< T > * fFirstNode
Definition MutableArray.h:125
T operator[](SizeT Index) const
Definition MutableArray.h:83
SizeT Count() const
Definition MutableArray.h:90
virtual ~NullableMutableArray()
Definition MutableArray.h:65
Boolean Remove(SizeT Index)
Definition MutableArray.h:93
Kernel::SizeT fNodeCount
Definition MutableArray.h:128
NullableMutableArray & operator=(const NullableMutableArray &)=default
MutableLinkedList< T > * fLastNode
Definition MutableArray.h:124
Boolean Add(const T val)
Definition MutableArray.h:100
NullableMutableArray()
Definition MutableArray.h:58
Reference wrapper class. /// =========================================================== ///.
Definition Ref.h:22
UPS inline definitions.
Definition Device.h:12
__SIZE_TYPE__ SizeT
Definition Config.h:60
bool Boolean
Definition Config.h:49