5#if (defined(__AUTORTFM) && __AUTORTFM)
26template<
typename TaskType,
typename KeyType = const
void*>
34 FEntry*
Next =
nullptr;
36 FEntry*
Prev =
nullptr;
45 void Unlink(FEntry*& ListHead, FEntry*& ListTail)
47 if (ListHead ==
this) { ListHead =
Next; }
48 if (ListTail ==
this) { ListTail =
Prev; }
57 void Link(FEntry*& ListHead, FEntry*& ListTail)
91 while (FEntry* Entry = Head)
102 template<
typename TaskParamType>
105 FEntry* Entry =
EntryPool.Take(std::forward<TaskParamType>(
Task));
106 Entry->Link(Head, Tail);
111 template<
typename TaskParamType>
114 Add(std::forward<TaskParamType>(
Task));
115 Keyed.FindOrAdd(Key).Push(Tail);
143 KeyType
Key = Iterator.Key;
161 bool DeleteKey(KeyType Key)
199 template<
typename CallbackType>
202 while (FEntry* Entry = Head)
204 Callback(Entry->Task);
217 template<
typename CallbackType>
220 while (FEntry* Entry = Tail)
222 Callback(Entry->Task);
251 Entry->Unlink(Head, Tail);
260 FEntry* Head =
nullptr;
261 FEntry* Tail =
nullptr;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127