12#include "Containers/Array.h"
39#error "STATS must be defined as either zero or one."
43#define checkThreadGraph checkSlow
215 FString FullHelpText;
464 static constexpr const char*
TagName =
"TaskGraphLinear";
564 UE_DEPRECATED(5.6,
"Call AddPrerequisites separately if you need to add new tasks before dispatch")
567 check(NewTasks.Num() == 0);
585 FTaskBase::WaitWithNamedThreadsSupport();
596template<
typename TTask>
613 template<
typename...T>
625 template<
typename...T>
639 template<
typename...T>
640 inline TGraphTask* ConstructAndHoldImpl(T&&... Args)
645 UE::Tasks::ETaskPriority
Pri;
680 struct CGetStatIdProvider
682 template <
typename TaskType>
683 auto Requires(TaskType&
Task) ->
decltype(
688 virtual void ExecuteTask()
override final
720 static void*
operator new(
size_t Size);
721 static void operator delete(
void* Ptr);
724 virtual void ExecuteTask()
override final
733inline void* FGraphEventImpl::operator
new(
size_t Size)
738inline void FGraphEventImpl::operator
delete(
void* Ptr)
785 return ThreadToReturnFrom;
821#if STATS || ENABLE_STATNAMEDEVENTS
833#if STATS|| ENABLE_STATNAMEDEVENTS
841#if STATS|| ENABLE_STATNAMEDEVENTS
871 return DesiredThread;
914 return DesiredThread;
1060template<
typename Signature, ESubsequentsMode::Type SubsequentsMode>
1084 return DesiredThread;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define NULL
Definition oodle2base.h:134
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
#define verify(expr)
Definition AssertionMacros.h:319
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define GET_STATID(Stat)
Definition Stats.h:656
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
FORCEINLINE constexpr void DestructItem(ElementType *Element)
Definition MemoryOps.h:56
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
#define DECLARE_INTRINSIC_TYPE_LAYOUT(T)
Definition MemoryLayout.h:760
CORE_API FGraphEventRef AnyTaskCompleted(const FGraphEventArray &GraphEvents)
Definition TaskGraph.cpp:2065
#define checkThreadGraph
Definition TaskGraphInterfaces.h:43
CORE_API FGraphEventImplAllocator & GetGraphEventImplAllocator()
Definition TaskGraph.cpp:1805
TArray< FGraphEventRef, TInlineAllocator< 4 > > FGraphEventArray
Definition TaskGraphInterfaces.h:258
CORE_API TArray< TaskTrace::FId > GetTraceIds(const FGraphEventArray &Tasks)
Definition TaskGraph.cpp:251
CORE_API int32 WaitForAnyTaskCompleted(const FGraphEventArray &GraphEvents, FTimespan Timeout=FTimespan::MaxValue())
Definition TaskGraph.cpp:2060
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Size
Definition VulkanMemory.cpp:4034
Definition TaskGraphInterfaces.h:213
ENamedThreads::Type Get(ENamedThreads::Type Thread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:228
Definition IConsoleManager.h:1580
Definition TaskGraphInterfaces.h:471
FGraphEventRef GetCompletionEvent()
Definition TaskGraphInterfaces.h:501
ENamedThreads::Type GetThreadToExecuteOn() const
Definition TaskGraphInterfaces.h:589
void Wait(ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:577
void Unlock(ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:547
void Execute(TArray< FBaseGraphTask * > &NewTasks, ENamedThreads::Type CurrentThread, bool bDeleteOnCompletion)
Definition TaskGraphInterfaces.h:490
bool IsTaskEvent() const
Definition TaskGraphInterfaces.h:538
FBaseGraphTask(const FGraphEventArray *InPrerequisites)
Definition TaskGraphInterfaces.h:474
static FGraphEventRef CreateGraphEvent()
Definition TaskGraphInterfaces.h:743
void Init(const TCHAR *InDebugName, UE::Tasks::ETaskPriority InPriority, UE::Tasks::EExtendedTaskPriority InExtendedPriority, UE::Tasks::ETaskFlags InTaskFlags=UE::Tasks::ETaskFlags::None)
Definition TaskGraphInterfaces.h:485
void DispatchSubsequents(ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:559
void DontCompleteUntil(FGraphEventRef NestedTask)
Definition TaskGraphInterfaces.h:510
void SetDebugName(const TCHAR *InDebugName)
Definition TaskGraphInterfaces.h:571
bool IsComplete() const
Definition TaskGraphInterfaces.h:529
Definition TaskGraphInterfaces.h:812
FCustomStatIDGraphTaskBase(const TStatId &StatId)
Definition TaskGraphInterfaces.h:819
TStatId GetStatId() const
Definition TaskGraphInterfaces.h:831
Definition TaskGraphInterfaces.h:994
static FGraphEventRef CreateAndDispatchWhenReady(const FDelegate &InTaskDeletegate, const TStatId InStatId, const FGraphEventRef &InPrerequisite, ENamedThreads::Type InCurrentThreadIfKnown=ENamedThreads::AnyThread, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:1050
DECLARE_DELEGATE_TwoParams(FDelegate, ENamedThreads::Type, const FGraphEventRef &)
FDelegate TaskDelegate
Definition TaskGraphInterfaces.h:999
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition TaskGraphInterfaces.h:1011
static FGraphEventRef CreateAndDispatchWhenReady(const FDelegate &InTaskDeletegate, const TStatId InStatId, const FGraphEventArray *InPrerequisites=NULL, ENamedThreads::Type InCurrentThreadIfKnown=ENamedThreads::AnyThread, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:1037
FDelegateGraphTask(const FDelegate &InTaskDeletegate, const TStatId InStatId, ENamedThreads::Type InDesiredThread)
Definition TaskGraphInterfaces.h:1021
ENamedThreads::Type GetDesiredThread()
Definition TaskGraphInterfaces.h:1003
const ENamedThreads::Type DesiredThread
Definition TaskGraphInterfaces.h:1001
static ESubsequentsMode::Type GetSubsequentsMode()
Definition TaskGraphInterfaces.h:1007
Definition TaskGraphInterfaces.h:711
FGraphEventImpl()
Definition TaskGraphInterfaces.h:713
Definition TaskGraphInterfaces.h:852
FNullGraphTask(const TStatId &StatId, ENamedThreads::Type InDesiredThread)
Definition TaskGraphInterfaces.h:859
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition TaskGraphInterfaces.h:882
ENamedThreads::Type GetDesiredThread()
Definition TaskGraphInterfaces.h:869
static ESubsequentsMode::Type GetSubsequentsMode()
Definition TaskGraphInterfaces.h:874
Definition TaskGraphInterfaces.h:761
ENamedThreads::Type GetDesiredThread()
Definition TaskGraphInterfaces.h:783
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition TaskGraphInterfaces.h:796
UE_FORCEINLINE_HINT TStatId GetStatId() const
Definition TaskGraphInterfaces.h:774
static ESubsequentsMode::Type GetSubsequentsMode()
Definition TaskGraphInterfaces.h:788
FReturnGraphTask(ENamedThreads::Type InThreadToReturnFrom)
Definition TaskGraphInterfaces.h:768
Definition LightweightStats.h:424
Definition TaskGraphInterfaces.h:931
static FGraphEventRef CreateAndDispatchWhenReady(const FDelegate &InTaskDeletegate, const TStatId InStatId, const FGraphEventArray *InPrerequisites=NULL, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:971
const ENamedThreads::Type DesiredThread
Definition TaskGraphInterfaces.h:938
DECLARE_DELEGATE(FDelegate)
static FGraphEventRef CreateAndDispatchWhenReady(const FDelegate &InTaskDeletegate, const TStatId &&InStatId, const FGraphEventRef &InPrerequisite, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:983
FDelegate TaskDelegate
Definition TaskGraphInterfaces.h:936
FSimpleDelegateGraphTask(const FDelegate &InTaskDeletegate, const TStatId StatId, ENamedThreads::Type InDesiredThread)
Definition TaskGraphInterfaces.h:956
ENamedThreads::Type GetDesiredThread()
Definition TaskGraphInterfaces.h:940
static ESubsequentsMode::Type GetSubsequentsMode()
Definition TaskGraphInterfaces.h:944
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition TaskGraphInterfaces.h:946
Definition TaskGraphInterfaces.h:265
virtual void AttachToThread(ENamedThreads::Type CurrentThread)=0
virtual void RequestReturn(ENamedThreads::Type CurrentThread)=0
virtual int32 GetNumBackgroundThreads()=0
static CORE_API void Shutdown()
Definition TaskGraph.cpp:1783
virtual void TriggerEventWhenTasksComplete(FEvent *InEvent, const FGraphEventArray &Tasks, ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread, ENamedThreads::Type TriggerThread=ENamedThreads::AnyHiPriThreadHiPriTask)=0
virtual bool IsThreadProcessingTasks(ENamedThreads::Type ThreadToCheck)=0
TFunction< EProcessTasksOperation(int32)> FProcessTasksUpdateCallback
Definition TaskGraphInterfaces.h:391
virtual bool IsCurrentThreadKnown()=0
virtual void ProcessThreadUntilRequestReturn(ENamedThreads::Type CurrentThread)=0
static CORE_API bool IsRunning()
Definition TaskGraph.cpp:1789
void WaitUntilTaskCompletes(FGraphEventRef &&Task, ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:421
static CORE_API FTaskGraphInterface & Get()
Definition TaskGraph.cpp:1794
void TriggerEventWhenTaskCompletes(FEvent *InEvent, const FGraphEventRef &Task, ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread, ENamedThreads::Type TriggerThread=ENamedThreads::AnyHiPriThreadHiPriTask)
Definition TaskGraphInterfaces.h:432
static CORE_API void Startup(int32 NumThreads)
Definition TaskGraph.cpp:1760
virtual void WakeNamedThread(ENamedThreads::Type ThreadToWake)=0
void WaitUntilTaskCompletes(const FGraphEventRef &Task, ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:416
virtual void StallForTuning(int32 Index, bool Stall)=0
EProcessTasksOperation
Definition TaskGraphInterfaces.h:373
@ ProcessNamedThreadTasks
virtual int32 GetNumForegroundThreads()=0
virtual int32 GetNumWorkerThreads()=0
virtual ENamedThreads::Type GetCurrentThreadIfKnown(bool bLocalQueue=false)=0
virtual bool ProcessUntilTasksComplete(const FGraphEventArray &Tasks, ENamedThreads::Type CurrentThreadIfKnown, const FProcessTasksUpdateCallback &IdleWorkUpdate={})=0
static bool IsMultithread()
Definition TaskGraph.cpp:1800
static void BroadcastSlow_OnlyUseForSpecialPurposes(bool bDoTaskThreads, bool bDoBackgroundThreads, TFunction< void(ENamedThreads::Type CurrentThread)> &Callback)
Definition TaskGraph.cpp:1897
virtual FBaseGraphTask * FindWork(ENamedThreads::Type ThreadInNeed)=0
virtual uint64 ProcessThreadUntilIdle(ENamedThreads::Type CurrentThread)=0
virtual void WaitUntilTasksComplete(const FGraphEventArray &Tasks, ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)=0
virtual ~FTaskGraphInterface()
Definition TaskGraphInterfaces.h:279
virtual void AddShutdownCallback(TFunction< void()> &Callback)=0
Definition TaskGraphInterfaces.h:894
UE_FORCEINLINE_HINT TStatId GetStatId() const
Definition TaskGraphInterfaces.h:907
ENamedThreads::Type GetDesiredThread()
Definition TaskGraphInterfaces.h:912
static ESubsequentsMode::Type GetSubsequentsMode()
Definition TaskGraphInterfaces.h:917
FTriggerEventGraphTask(FEvent *InEvent, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyHiPriThreadHiPriTask)
Definition TaskGraphInterfaces.h:900
void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition TaskGraphInterfaces.h:919
Definition IConsoleManager.h:558
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition ConcurrentLinearAllocator.h:65
Definition ConcurrentLinearAllocator.h:571
Definition TaskGraphInterfaces.h:1062
ENamedThreads::Type GetDesiredThread() const
Definition TaskGraphInterfaces.h:1082
TFunctionGraphTaskImpl(TUniqueFunction< Signature > &&InFunction, TStatId StatId, ENamedThreads::Type InDesiredThread)
Definition TaskGraphInterfaces.h:1076
static ESubsequentsMode::Type GetSubsequentsMode()
Definition TaskGraphInterfaces.h:1087
UE_FORCEINLINE_HINT void DoTask(ENamedThreads::Type CurrentThread, const FGraphEventRef &MyCompletionGraphEvent)
Definition TaskGraphInterfaces.h:1092
Definition AndroidPlatformMisc.h:14
Definition TaskGraphInterfaces.h:605
TGraphTask * ConstructAndHold(T &&... Args)
Definition TaskGraphInterfaces.h:626
FGraphEventRef ConstructAndDispatchWhenReady(T &&... Args)
Definition TaskGraphInterfaces.h:614
FConstructor(const FGraphEventArray *InPrerequisites)
Definition TaskGraphInterfaces.h:633
UE_NONCOPYABLE(FConstructor)
Definition TaskGraphInterfaces.h:598
static FConstructor CreateTask(const FGraphEventArray *Prerequisites=nullptr, ENamedThreads::Type CurrentThreadIfKnown=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:664
void * Allocate()
Definition LockFreeFixedSizeAllocator.h:51
void Free(void *Item)
Definition LockFreeFixedSizeAllocator.h:100
Definition LockFreeFixedSizeAllocator.h:334
Definition FunctionFwd.h:19
Definition TaskPrivate.h:120
bool IsNamedThreadTask() const
Definition TaskPrivate.h:205
EExtendedTaskPriority GetExtendedPriority() const
Definition TaskPrivate.h:215
void AddNested(FTaskBase &Nested)
Definition TaskPrivate.h:444
bool AddPrerequisites(FTaskBase &Prerequisite)
Definition TaskPrivate.h:223
void AddRef()
Definition TaskPrivate.h:131
bool TryExecuteTask()
Definition TaskPrivate.h:492
TaskTrace::FId GetTraceId() const
Definition TaskPrivate.h:479
void UnlockPrerequisites()
Definition TaskPrivate.h:825
bool TryLaunch(uint64 TaskSize)
Definition TaskPrivate.h:409
void ReleaseInternalReference()
Definition TaskPrivate.h:438
FTaskBase(uint32 InitRefCount, bool bUnlockPrerequisites=true)
Definition TaskPrivate.h:157
bool IsCompleted() const
Definition TaskPrivate.h:424
ETaskPriority GetPriority() const
Definition TaskPrivate.h:210
Definition TaskGraph.cpp:63
CORE_API int32 bHasBackgroundThreads
Definition TaskGraph.cpp:66
UE_FORCEINLINE_HINT Type GetRenderThread()
Definition TaskGraphInterfaces.h:123
UE_FORCEINLINE_HINT Type GetThreadIndex(Type ThreadAndIndex)
Definition TaskGraphInterfaces.h:148
UE_FORCEINLINE_HINT void SetRenderThread_Local(Type Thread)
Definition TaskGraphInterfaces.h:138
int32 GetThreadPriorityIndex(Type ThreadAndIndex)
Definition TaskGraphInterfaces.h:163
Type SetPriorities(Type ThreadAndIndex, Type ThreadPriority, Type TaskPriority)
Definition TaskGraphInterfaces.h:170
UE_FORCEINLINE_HINT void SetRenderThread(Type Thread)
Definition TaskGraphInterfaces.h:133
Type SetThreadPriority(Type ThreadAndIndex, Type ThreadPriority)
Definition TaskGraphInterfaces.h:190
UE_FORCEINLINE_HINT int32 GetQueueIndex(Type ThreadAndIndex)
Definition TaskGraphInterfaces.h:153
CORE_API int32 bHasHighPriorityThreads
Definition TaskGraph.cpp:67
Type SetTaskPriority(Type ThreadAndIndex, Type TaskPriority)
Definition TaskGraphInterfaces.h:200
UE_FORCEINLINE_HINT int32 GetTaskPriority(Type ThreadAndIndex)
Definition TaskGraphInterfaces.h:158
Type
Definition TaskGraphInterfaces.h:57
@ QueueIndexShift
Definition TaskGraphInterfaces.h:77
@ NumThreadPriorities
Definition TaskGraphInterfaces.h:92
@ NormalTaskPriority
Definition TaskGraphInterfaces.h:81
@ NumTaskPriorities
Definition TaskGraphInterfaces.h:84
@ BackgroundThreadPriority
Definition TaskGraphInterfaces.h:90
@ NormalThreadPriority
Definition TaskGraphInterfaces.h:88
@ TaskPriorityMask
Definition TaskGraphInterfaces.h:85
@ RHIThread
Definition TaskGraphInterfaces.h:60
@ GameThread
Definition TaskGraphInterfaces.h:61
@ HighThreadPriority
Definition TaskGraphInterfaces.h:89
@ ThreadIndexMask
Definition TaskGraphInterfaces.h:75
@ UnusedAnchor
Definition TaskGraphInterfaces.h:58
@ NumQueues
Definition TaskGraphInterfaces.h:74
@ AnyBackgroundThreadNormalTask
Definition TaskGraphInterfaces.h:106
@ ThreadPriorityShift
Definition TaskGraphInterfaces.h:94
@ QueueIndexMask
Definition TaskGraphInterfaces.h:76
@ ThreadPriorityMask
Definition TaskGraphInterfaces.h:93
@ ActualRenderingThread
Definition TaskGraphInterfaces.h:63
@ AnyHiPriThreadHiPriTask
Definition TaskGraphInterfaces.h:101
@ HighTaskPriority
Definition TaskGraphInterfaces.h:82
@ AnyNormalThreadHiPriTask
Definition TaskGraphInterfaces.h:104
@ LocalQueue
Definition TaskGraphInterfaces.h:72
@ AnyHiPriThreadNormalTask
Definition TaskGraphInterfaces.h:100
@ ActualRenderingThread_Local
Definition TaskGraphInterfaces.h:98
@ AnyBackgroundHiPriTask
Definition TaskGraphInterfaces.h:107
@ AnyNormalThreadNormalTask
Definition TaskGraphInterfaces.h:103
@ TaskPriorityShift
Definition TaskGraphInterfaces.h:86
@ GameThread_Local
Definition TaskGraphInterfaces.h:97
@ AnyThread
Definition TaskGraphInterfaces.h:67
@ MainQueue
Definition TaskGraphInterfaces.h:71
UE_FORCEINLINE_HINT Type GetRenderThread_Local()
Definition TaskGraphInterfaces.h:128
Definition TaskGraphInterfaces.h:247
Type
Definition TaskGraphInterfaces.h:249
@ FireAndForget
Definition TaskGraphInterfaces.h:253
@ TrackSubsequents
Definition TaskGraphInterfaces.h:251
void TASK_CORE_API Created(FId TaskId, uint64 TaskSize)
Definition TaskTrace.h:76
ENamedThreads::Type TranslatePriority(EExtendedTaskPriority Priority)
Definition TaskPrivate.cpp:502
FTaskBase * GetCurrentTask()
Definition TaskPrivate.cpp:288
ETaskFlags
Definition TaskPrivate.h:89
EExtendedTaskPriority
Definition TaskPrivate.h:60
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition TaskGraphInterfaces.h:111
friend void SetRenderThread(Type Thread)
Definition TaskGraphInterfaces.h:133
friend void SetRenderThread_Local(Type Thread)
Definition TaskGraphInterfaces.h:138
friend Type GetRenderThread()
Definition TaskGraphInterfaces.h:123
friend Type GetRenderThread_Local()
Definition TaskGraphInterfaces.h:128
Definition ConcurrentLinearAllocator.h:154
Definition TaskGraphInterfaces.h:1118
static FGraphEventRef CreateAndDispatchWhenReady(TUniqueFunction< void()> InFunction, TStatId InStatId, const FGraphEventRef &InPrerequisite, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:1146
static FGraphEventRef CreateAndDispatchWhenReady(TUniqueFunction< void(ENamedThreads::Type, const FGraphEventRef &)> InFunction, TStatId InStatId, const FGraphEventRef &InPrerequisite, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:1154
static FGraphEventRef CreateAndDispatchWhenReady(TUniqueFunction< void()> InFunction, TStatId InStatId=TStatId{}, const FGraphEventArray *InPrerequisites=nullptr, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:1128
static FGraphEventRef CreateAndDispatchWhenReady(TUniqueFunction< void(ENamedThreads::Type, const FGraphEventRef &)> InFunction, TStatId InStatId=TStatId{}, const FGraphEventArray *InPrerequisites=nullptr, ENamedThreads::Type InDesiredThread=ENamedThreads::AnyThread)
Definition TaskGraphInterfaces.h:1133
Definition TaskGraphInterfaces.h:459
static constexpr bool InlineBlockAllocation
Definition TaskGraphInterfaces.h:463
static constexpr uint32 BlockSize
Definition TaskGraphInterfaces.h:460
static constexpr bool RequiresAccurateSize
Definition TaskGraphInterfaces.h:462
static constexpr const char * TagName
Definition TaskGraphInterfaces.h:464
static constexpr bool AllowOversizedBlocks
Definition TaskGraphInterfaces.h:461
static FTimespan MaxValue()
Definition Timespan.h:686
Definition LightweightStats.h:416
Definition TypeCompatibleBytes.h:24
ElementType * GetTypedPtr()
Definition TypeCompatibleBytes.h:38