UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Tasks::Private::FTaskBase Class Referenceabstract

#include <TaskPrivate.h>

+ Inheritance diagram for UE::Tasks::Private::FTaskBase:

Public Member Functions

void AddRef ()
 
void Release ()
 
uint32 GetRefCount (std::memory_order MemoryOrder=std::memory_order_relaxed) const
 
bool IsAwaitable () const
 
bool IsNamedThreadTask () const
 
ETaskPriority GetPriority () const
 
EExtendedTaskPriority GetExtendedPriority () const
 
bool AddPrerequisites (FTaskBase &Prerequisite)
 
template<typename HigherLevelTaskType , decltype(std::declval< HigherLevelTaskType >().Pimpl) * = nullptr>
bool AddPrerequisites (const HigherLevelTaskType &Prerequisite)
 
template<typename HigherLevelTaskType , std::enable_if_t< std::is_same_v< HigherLevelTaskType, FGraphEventRef > > * = nullptr>
bool AddPrerequisites (const HigherLevelTaskType &Prerequisite)
 
template<typename PrerequisiteCollectionType , decltype(std::declval< PrerequisiteCollectionType >().begin()) * = nullptr>
void AddPrerequisites (const PrerequisiteCollectionType &InPrerequisites)
 
bool AddSubsequent (FTaskBase &Subsequent)
 
void SetPipe (FPipe &InPipe)
 
FPipeGetPipe () const
 
bool Trigger (uint64 TaskSize)
 
bool TryLaunch (uint64 TaskSize)
 
bool IsCompleted () const
 
CORE_API bool TryRetractAndExecute (FTimeout Timeout, uint32 RecursionDepth=0)
 
void ReleaseInternalReference ()
 
void AddNested (FTaskBase &Nested)
 
CORE_API bool Wait (FTimeout Timeout)
 
CORE_API void Wait ()
 
CORE_API void WaitWithNamedThreadsSupport ()
 
TaskTrace::FId GetTraceId () const
 

Protected Member Functions

 FTaskBase (uint32 InitRefCount, bool bUnlockPrerequisites=true)
 
void Init (const TCHAR *InDebugName, ETaskPriority InPriority, EExtendedTaskPriority InExtendedPriority, ETaskFlags Flags)
 
virtual ~FTaskBase ()
 
virtual void ExecuteTask ()=0
 
template<typename PrerequisiteCollectionType , decltype(std::declval< PrerequisiteCollectionType >().begin()) * = nullptr>
void AddPrerequisites (const PrerequisiteCollectionType &InPrerequisites, bool bLockPrerequisite)
 
bool TryExecuteTask ()
 
void Close ()
 
CORE_API void ClearPipe ()
 
void UnlockPrerequisites ()
 

Constructor & Destructor Documentation

◆ FTaskBase()

UE::Tasks::Private::FTaskBase::FTaskBase ( uint32  InitRefCount,
bool  bUnlockPrerequisites = true 
)
inlineexplicitprotected

◆ ~FTaskBase()

virtual UE::Tasks::Private::FTaskBase::~FTaskBase ( )
inlineprotectedvirtual

Member Function Documentation

◆ AddNested()

void UE::Tasks::Private::FTaskBase::AddNested ( FTaskBase Nested)
inline

◆ AddPrerequisites() [1/5]

template<typename HigherLevelTaskType , decltype(std::declval< HigherLevelTaskType >().Pimpl) * = nullptr>
bool UE::Tasks::Private::FTaskBase::AddPrerequisites ( const HigherLevelTaskType Prerequisite)
inline

◆ AddPrerequisites() [2/5]

template<typename HigherLevelTaskType , std::enable_if_t< std::is_same_v< HigherLevelTaskType, FGraphEventRef > > * = nullptr>
bool UE::Tasks::Private::FTaskBase::AddPrerequisites ( const HigherLevelTaskType Prerequisite)
inline

◆ AddPrerequisites() [3/5]

template<typename PrerequisiteCollectionType , decltype(std::declval< PrerequisiteCollectionType >().begin()) * = nullptr>
void UE::Tasks::Private::FTaskBase::AddPrerequisites ( const PrerequisiteCollectionType InPrerequisites)
inline

◆ AddPrerequisites() [4/5]

template<typename PrerequisiteCollectionType , decltype(std::declval< PrerequisiteCollectionType >().begin()) * = nullptr>
void UE::Tasks::Private::FTaskBase::AddPrerequisites ( const PrerequisiteCollectionType InPrerequisites,
bool  bLockPrerequisite 
)
inlineprotected

◆ AddPrerequisites() [5/5]

bool UE::Tasks::Private::FTaskBase::AddPrerequisites ( FTaskBase Prerequisite)
inline

◆ AddRef()

void UE::Tasks::Private::FTaskBase::AddRef ( )
inline

◆ AddSubsequent()

bool UE::Tasks::Private::FTaskBase::AddSubsequent ( FTaskBase Subsequent)
inline

◆ ClearPipe()

void UE::Tasks::Private::FTaskBase::ClearPipe ( )
protected

◆ Close()

void UE::Tasks::Private::FTaskBase::Close ( )
inlineprotected

◆ ExecuteTask()

◆ GetExtendedPriority()

EExtendedTaskPriority UE::Tasks::Private::FTaskBase::GetExtendedPriority ( ) const
inline

◆ GetPipe()

FPipe * UE::Tasks::Private::FTaskBase::GetPipe ( ) const
inline

◆ GetPriority()

ETaskPriority UE::Tasks::Private::FTaskBase::GetPriority ( ) const
inline

◆ GetRefCount()

uint32 UE::Tasks::Private::FTaskBase::GetRefCount ( std::memory_order  MemoryOrder = std::memory_order_relaxed) const
inline

◆ GetTraceId()

TaskTrace::FId UE::Tasks::Private::FTaskBase::GetTraceId ( ) const
inline

◆ Init()

void UE::Tasks::Private::FTaskBase::Init ( const TCHAR InDebugName,
ETaskPriority  InPriority,
EExtendedTaskPriority  InExtendedPriority,
ETaskFlags  Flags 
)
inlineprotected

◆ IsAwaitable()

bool UE::Tasks::Private::FTaskBase::IsAwaitable ( ) const
inline

◆ IsCompleted()

bool UE::Tasks::Private::FTaskBase::IsCompleted ( ) const
inline

◆ IsNamedThreadTask()

bool UE::Tasks::Private::FTaskBase::IsNamedThreadTask ( ) const
inline

◆ Release()

void UE::Tasks::Private::FTaskBase::Release ( )
inline

◆ ReleaseInternalReference()

void UE::Tasks::Private::FTaskBase::ReleaseInternalReference ( )
inline

◆ SetPipe()

void UE::Tasks::Private::FTaskBase::SetPipe ( FPipe InPipe)
inline

◆ Trigger()

bool UE::Tasks::Private::FTaskBase::Trigger ( uint64  TaskSize)
inline

◆ TryExecuteTask()

bool UE::Tasks::Private::FTaskBase::TryExecuteTask ( )
inlineprotected

◆ TryLaunch()

bool UE::Tasks::Private::FTaskBase::TryLaunch ( uint64  TaskSize)
inline

◆ TryRetractAndExecute()

bool UE::Tasks::Private::FTaskBase::TryRetractAndExecute ( FTimeout  Timeout,
uint32  RecursionDepth = 0 
)

◆ UnlockPrerequisites()

void UE::Tasks::Private::FTaskBase::UnlockPrerequisites ( )
inlineprotected

◆ Wait() [1/2]

void UE::Tasks::Private::FTaskBase::Wait ( )

◆ Wait() [2/2]

bool UE::Tasks::Private::FTaskBase::Wait ( FTimeout  Timeout)

◆ WaitWithNamedThreadsSupport()

void UE::Tasks::Private::FTaskBase::WaitWithNamedThreadsSupport ( )

The documentation for this class was generated from the following files: