UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Dataflow::FContext Class Reference

#include <DataflowNodeParameters.h>

+ Inheritance diagram for UE::Dataflow::FContext:

Public Member Functions

 FContext ()
 
virtual ~FContext ()=default
 
virtual bool IsA (FName InType) const
 
virtual FName GetType () const
 
template<class T >
const T * AsType () const
 
template<class T >
T * AsType ()
 
bool IsThreaded () const
 
DATAFLOWCORE_API void SetThreaded (bool bValue)
 
DATAFLOWCORE_API bool IsAsyncEvaluating () const
 
DATAFLOWCORE_API void CancelAsyncEvaluation ()
 
DATAFLOWCORE_API void GetAsyncEvaluationStats (int32 &OutNumPendingTasks, int32 &OutNumRunningTasks, int32 &OutNumCompletedTasks) const
 
virtual DATAFLOWCORE_API void SetDataImpl (FContextCacheKey Key, TUniquePtr< FContextCacheElementBase > &&DataStoreEntry)
 
virtual DATAFLOWCORE_API const TUniquePtr< FContextCacheElementBase > * GetDataImpl (FContextCacheKey Key) const
 
virtual DATAFLOWCORE_API bool HasDataImpl (FContextCacheKey Key, FTimestamp InTimestamp=FTimestamp::Invalid) const
 
virtual DATAFLOWCORE_API bool IsEmptyImpl () const
 
virtual DATAFLOWCORE_API int32 GetKeys (TSet< FContextCacheKey > &InKeys) const
 
DATAFLOWCORE_API void Evaluate (const FDataflowNode *Node, const FDataflowOutput *Output, FOnPostEvaluationFunction PostEvaluationFunction)
 
virtual DATAFLOWCORE_API void Evaluate (const FDataflowNode *Node, const FDataflowOutput *Output)
 
virtual DATAFLOWCORE_API bool Evaluate (const FDataflowOutput &Connection)
 
DATAFLOWCORE_API void ClearAllData ()
 
template<typename T >
void SetData (FContextCacheKey InKey, const FProperty *InProperty, T &&InValue, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetDataFromStructView (FContextCacheKey InKey, const FProperty *InProperty, const FConstStructView &StructView, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetDataFromStructArrayView (FContextCacheKey InKey, const FProperty *InProperty, const FConstStructArrayView &StructArrayView, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetDataReference (FContextCacheKey Key, const FProperty *Property, FContextCacheKey ReferenceKey, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API void SetNullData (FContextCacheKey InKey, const FProperty *InProperty, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API int32 GetArraySizeFromData (const FContextCacheKey InKey) const
 
DATAFLOWCORE_API void SetArrayElementFromData (const FContextCacheKey InArrayKey, int32 Index, const FContextCacheKey InElementKey, const FProperty *InProperty, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp)
 
DATAFLOWCORE_API bool CopyDataToAnotherContext (const FContextCacheKey InSourceKey, FContext &TargetContext, const FContextCacheKey InTargetKey, const FProperty *InProperty, const FGuid &InNodeGuid, uint32 InNodeHash, const FTimestamp &InTimestamp) const
 
template<class T >
const T & GetData (FContextCacheKey Key, const FProperty *InProperty, const T &Default=T()) const
 
DATAFLOWCORE_API const voidGetUntypedData (FContextCacheKey Key, const FProperty *InProperty) const
 
DATAFLOWCORE_API bool HasData (FContextCacheKey Key, FTimestamp InTimestamp=FTimestamp::Invalid) const
 
DATAFLOWCORE_API bool IsEmpty () const
 
virtual DATAFLOWCORE_API void Serialize (FArchive &Ar)
 
virtual DATAFLOWCORE_API const TUniquePtr< FContextCacheElementBase > * FindCacheElement (FContextCacheKey InKey) const override
 
virtual DATAFLOWCORE_API bool HasCacheElement (FContextCacheKey InKey, FTimestamp InTimestamp=FTimestamp::Invalid) const override
 
virtual DATAFLOWCORE_API UObjectAddAsset (const FString &AssetPath, const UClass *AssetClass) override
 
virtual DATAFLOWCORE_API UObjectCommitAsset (const FString &AssetPath) override
 
virtual DATAFLOWCORE_API void ClearAssets () override
 
DATAFLOWCORE_API FTimestamp GetTimestamp (FContextCacheKey Key) const
 
DATAFLOWCORE_API void PushToCallstack (const FDataflowConnection *Connection)
 
DATAFLOWCORE_API void PopFromCallstack (const FDataflowConnection *Connection)
 
DATAFLOWCORE_API bool IsInCallstack (const FDataflowConnection *Connection) const
 
DATAFLOWCORE_API FContextPerfData::FData GetPerfDataForNode (const FDataflowNode &Node) const
 
DATAFLOWCORE_API void ResetPerfDataForNode (const FDataflowNode &Node)
 
DATAFLOWCORE_API void AddExternalPerfData (const FContextPerfData &InPerfData)
 
DATAFLOWCORE_API void ClearAllPerfData ()
 
DATAFLOWCORE_API void EnablePerfData (bool bEnable)
 
DATAFLOWCORE_API bool IsPerfDataEnabled () const
 
DATAFLOWCORE_API bool IsCacheEntryAfterTimestamp (FContextCacheKey InKey, const FTimestamp InTimestamp) const
 
DATAFLOWCORE_API void Info (const FString &InInfo, const FDataflowNode *InNode=nullptr, const FDataflowOutput *InOutput=nullptr)
 
DATAFLOWCORE_API int32 GetNumInfo () const
 
DATAFLOWCORE_API void Warning (const FString &InWarning, const FDataflowNode *InNode=nullptr, const FDataflowOutput *InOutput=nullptr)
 
DATAFLOWCORE_API int32 GetNumWarnings () const
 
DATAFLOWCORE_API void Error (const FString &InError, const FDataflowNode *InNode=nullptr, const FDataflowOutput *InOutput=nullptr)
 
DATAFLOWCORE_API int32 GetNumErrors () const
 
bool NodeHasWarning (const FDataflowNode *InNode)
 
bool NodeHasError (const FDataflowNode *InNode)
 
bool NodeFailed (const FDataflowNode *InNode)
 
DATAFLOWCORE_API void ClearNodesData ()
 
DATAFLOWCORE_API void ClearNodeData (const FDataflowNode *InNode)
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnNodeBeginEvaluateMulticast, const FDataflowNode *Node, const FDataflowOutput *Output)
 
 DECLARE_MULTICAST_DELEGATE_TwoParams (FOnNodeFinishEvaluateMulticast, const FDataflowNode *Node, const FDataflowOutput *Output)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FOnContextHasInfoMulticast, const FDataflowNode *Node, const FDataflowOutput *Output, const FString &Info)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FOnContextHasWarningMulticast, const FDataflowNode *Node, const FDataflowOutput *Output, const FString &Info)
 
 DECLARE_MULTICAST_DELEGATE_ThreeParams (FOnContextHasErrorMulticast, const FDataflowNode *Node, const FDataflowOutput *Output, const FString &Info)
 
- Public Member Functions inherited from UE::Dataflow::IContextAssetStoreInterface
template<typename T >
T * AddAssetTyped (const FString &AssetPath)
 

Static Public Member Functions

static FName StaticType ()
 

Public Attributes

FOnNodeBeginEvaluateMulticast OnNodeBeginEvaluateMulticast
 
FOnNodeFinishEvaluateMulticast OnNodeFinishEvaluateMulticast
 
FOnContextHasInfoMulticast OnContextHasInfo
 
FOnContextHasWarningMulticast OnContextHasWarning
 
FOnContextHasErrorMulticast OnContextHasError
 

Protected Member Functions

 FContext (FContext &&)=delete
 
FContextoperator= (FContext &&)=delete
 
 FContext (const FContext &)=delete
 
FContextoperator= (const FContext &)=delete
 
DATAFLOWCORE_API void BeginContextEvaluation (const FDataflowNode *Node, const FDataflowOutput *Output)
 
DATAFLOWCORE_API const FContextPerfDataGetPerfData () const
 

Protected Attributes

FContextCache DataStore
 
TUniquePtr< FCriticalSectionDataLock
 
FContextEvaluator AsyncEvaluator
 

Constructor & Destructor Documentation

◆ FContext() [1/3]

UE::Dataflow::FContext::FContext ( FContext &&  )
protecteddelete

◆ FContext() [2/3]

UE::Dataflow::FContext::FContext ( const FContext )
protecteddelete

◆ FContext() [3/3]

UE::Dataflow::FContext::FContext ( )
inline

◆ ~FContext()

virtual UE::Dataflow::FContext::~FContext ( )
virtualdefault

Member Function Documentation

◆ AddAsset()

UObject * UE::Dataflow::FContext::AddAsset ( const FString &  PersistentAssetPath,
const UClass AssetClass 
)
overridevirtual

Create an new asset to be commited later ( when the terminal nodes are evaluated ) When commited, the asset will be duplicated to a final package matching PersistentAssetPath

Returns
an UObject owned by the transient package

Implements UE::Dataflow::IContextAssetStoreInterface.

Reimplemented in UE::Dataflow::SubGraphNodes::Private::FContextSubGraph.

◆ AddExternalPerfData()

void UE::Dataflow::FContext::AddExternalPerfData ( const FContextPerfData InPerfData)

◆ AsType() [1/2]

template<class T >
T * UE::Dataflow::FContext::AsType ( )
inline

◆ AsType() [2/2]

template<class T >
const T * UE::Dataflow::FContext::AsType ( ) const
inline

◆ BeginContextEvaluation()

void UE::Dataflow::FContext::BeginContextEvaluation ( const FDataflowNode Node,
const FDataflowOutput Output 
)
protected

◆ CancelAsyncEvaluation()

void UE::Dataflow::FContext::CancelAsyncEvaluation ( )

◆ ClearAllData()

void UE::Dataflow::FContext::ClearAllData ( )

◆ ClearAllPerfData()

void UE::Dataflow::FContext::ClearAllPerfData ( )

◆ ClearAssets()

void UE::Dataflow::FContext::ClearAssets ( )
overridevirtual

Clear all assets from the store

Implements UE::Dataflow::IContextAssetStoreInterface.

Reimplemented in UE::Dataflow::SubGraphNodes::Private::FContextSubGraph.

◆ ClearNodeData()

void UE::Dataflow::FContext::ClearNodeData ( const FDataflowNode InNode)

◆ ClearNodesData()

void UE::Dataflow::FContext::ClearNodesData ( )

◆ CommitAsset()

UObject * UE::Dataflow::FContext::CommitAsset ( const FString &  TransientAssetPath)
overridevirtual

Commit the asset matching the TransientAssetPath If such asset was added previously this will duplicate it and save it to a persistent package

Returns
the newly created persistent UObject asset

Implements UE::Dataflow::IContextAssetStoreInterface.

Reimplemented in UE::Dataflow::SubGraphNodes::Private::FContextSubGraph.

◆ CopyDataToAnotherContext()

bool UE::Dataflow::FContext::CopyDataToAnotherContext ( const FContextCacheKey  InSourceKey,
FContext TargetContext,
const FContextCacheKey  InTargetKey,
const FProperty InProperty,
const FGuid InNodeGuid,
uint32  InNodeHash,
const FTimestamp InTimestamp 
) const

◆ DECLARE_MULTICAST_DELEGATE_ThreeParams() [1/3]

UE::Dataflow::FContext::DECLARE_MULTICAST_DELEGATE_ThreeParams ( FOnContextHasErrorMulticast  ,
const FDataflowNode Node,
const FDataflowOutput Output,
const FString &  Info 
)

◆ DECLARE_MULTICAST_DELEGATE_ThreeParams() [2/3]

UE::Dataflow::FContext::DECLARE_MULTICAST_DELEGATE_ThreeParams ( FOnContextHasInfoMulticast  ,
const FDataflowNode Node,
const FDataflowOutput Output,
const FString &  Info 
)

◆ DECLARE_MULTICAST_DELEGATE_ThreeParams() [3/3]

UE::Dataflow::FContext::DECLARE_MULTICAST_DELEGATE_ThreeParams ( FOnContextHasWarningMulticast  ,
const FDataflowNode Node,
const FDataflowOutput Output,
const FString &  Info 
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [1/2]

UE::Dataflow::FContext::DECLARE_MULTICAST_DELEGATE_TwoParams ( FOnNodeBeginEvaluateMulticast  ,
const FDataflowNode Node,
const FDataflowOutput Output 
)

◆ DECLARE_MULTICAST_DELEGATE_TwoParams() [2/2]

UE::Dataflow::FContext::DECLARE_MULTICAST_DELEGATE_TwoParams ( FOnNodeFinishEvaluateMulticast  ,
const FDataflowNode Node,
const FDataflowOutput Output 
)

◆ EnablePerfData()

void UE::Dataflow::FContext::EnablePerfData ( bool  bEnable)

◆ Error()

void UE::Dataflow::FContext::Error ( const FString &  InError,
const FDataflowNode InNode = nullptr,
const FDataflowOutput InOutput = nullptr 
)

◆ Evaluate() [1/3]

void UE::Dataflow::FContext::Evaluate ( const FDataflowNode Node,
const FDataflowOutput Output 
)
virtual

◆ Evaluate() [2/3]

void UE::Dataflow::FContext::Evaluate ( const FDataflowNode Node,
const FDataflowOutput Output,
FOnPostEvaluationFunction  PostEvaluationFunction 
)

◆ Evaluate() [3/3]

bool UE::Dataflow::FContext::Evaluate ( const FDataflowOutput Connection)
virtual

◆ FindCacheElement()

const TUniquePtr< FContextCacheElementBase > * UE::Dataflow::FContext::FindCacheElement ( FContextCacheKey  InKey) const
overridevirtual

◆ GetArraySizeFromData()

int32 UE::Dataflow::FContext::GetArraySizeFromData ( const FContextCacheKey  InKey) const

◆ GetAsyncEvaluationStats()

void UE::Dataflow::FContext::GetAsyncEvaluationStats ( int32 OutNumPendingTasks,
int32 OutNumRunningTasks,
int32 OutNumCompletedTasks 
) const

◆ GetData()

template<class T >
const T & UE::Dataflow::FContext::GetData ( FContextCacheKey  Key,
const FProperty InProperty,
const T &  Default = T() 
) const
inline

◆ GetDataImpl()

const TUniquePtr< FContextCacheElementBase > * UE::Dataflow::FContext::GetDataImpl ( FContextCacheKey  Key) const
virtual

◆ GetKeys()

int32 UE::Dataflow::FContext::GetKeys ( TSet< FContextCacheKey > &  InKeys) const
virtual

◆ GetNumErrors()

int32 UE::Dataflow::FContext::GetNumErrors ( ) const

◆ GetNumInfo()

int32 UE::Dataflow::FContext::GetNumInfo ( ) const

◆ GetNumWarnings()

int32 UE::Dataflow::FContext::GetNumWarnings ( ) const

◆ GetPerfData()

const FContextPerfData & UE::Dataflow::FContext::GetPerfData ( ) const
protected

◆ GetPerfDataForNode()

FContextPerfData::FData UE::Dataflow::FContext::GetPerfDataForNode ( const FDataflowNode Node) const

◆ GetTimestamp()

FTimestamp UE::Dataflow::FContext::GetTimestamp ( FContextCacheKey  Key) const

◆ GetType()

virtual FName UE::Dataflow::FContext::GetType ( ) const
inlinevirtual

◆ GetUntypedData()

const void * UE::Dataflow::FContext::GetUntypedData ( FContextCacheKey  Key,
const FProperty InProperty 
) const

◆ HasCacheElement()

bool UE::Dataflow::FContext::HasCacheElement ( FContextCacheKey  InKey,
FTimestamp  InTimestamp = FTimestamp::Invalid 
) const
overridevirtual

◆ HasData()

bool UE::Dataflow::FContext::HasData ( FContextCacheKey  Key,
FTimestamp  InTimestamp = FTimestamp::Invalid 
) const

◆ HasDataImpl()

bool UE::Dataflow::FContext::HasDataImpl ( FContextCacheKey  Key,
FTimestamp  InTimestamp = FTimestamp::Invalid 
) const
virtual

◆ Info()

void UE::Dataflow::FContext::Info ( const FString &  InInfo,
const FDataflowNode InNode = nullptr,
const FDataflowOutput InOutput = nullptr 
)

◆ IsA()

virtual bool UE::Dataflow::FContext::IsA ( FName  InType) const
inlinevirtual

◆ IsAsyncEvaluating()

bool UE::Dataflow::FContext::IsAsyncEvaluating ( ) const

◆ IsCacheEntryAfterTimestamp()

bool UE::Dataflow::FContext::IsCacheEntryAfterTimestamp ( FContextCacheKey  InKey,
const FTimestamp  InTimestamp 
) const

◆ IsEmpty()

bool UE::Dataflow::FContext::IsEmpty ( ) const

◆ IsEmptyImpl()

bool UE::Dataflow::FContext::IsEmptyImpl ( ) const
virtual

◆ IsInCallstack()

bool UE::Dataflow::FContext::IsInCallstack ( const FDataflowConnection Connection) const

◆ IsPerfDataEnabled()

bool UE::Dataflow::FContext::IsPerfDataEnabled ( ) const

◆ IsThreaded()

bool UE::Dataflow::FContext::IsThreaded ( ) const
inline

◆ NodeFailed()

bool UE::Dataflow::FContext::NodeFailed ( const FDataflowNode InNode)
inline

◆ NodeHasError()

bool UE::Dataflow::FContext::NodeHasError ( const FDataflowNode InNode)
inline

◆ NodeHasWarning()

bool UE::Dataflow::FContext::NodeHasWarning ( const FDataflowNode InNode)
inline

◆ operator=() [1/2]

FContext & UE::Dataflow::FContext::operator= ( const FContext )
protecteddelete

◆ operator=() [2/2]

FContext & UE::Dataflow::FContext::operator= ( FContext &&  )
protecteddelete

◆ PopFromCallstack()

void UE::Dataflow::FContext::PopFromCallstack ( const FDataflowConnection Connection)

◆ PushToCallstack()

void UE::Dataflow::FContext::PushToCallstack ( const FDataflowConnection Connection)

◆ ResetPerfDataForNode()

void UE::Dataflow::FContext::ResetPerfDataForNode ( const FDataflowNode Node)

◆ Serialize()

void UE::Dataflow::FContext::Serialize ( FArchive Ar)
virtual

◆ SetArrayElementFromData()

void UE::Dataflow::FContext::SetArrayElementFromData ( const FContextCacheKey  InArrayKey,
int32  Index,
const FContextCacheKey  InElementKey,
const FProperty InProperty,
const FGuid InNodeGuid,
uint32  InNodeHash,
const FTimestamp InTimestamp 
)

◆ SetData()

template<typename T >
void UE::Dataflow::FContext::SetData ( FContextCacheKey  InKey,
const FProperty InProperty,
T &&  InValue,
const FGuid InNodeGuid,
uint32  InNodeHash,
const FTimestamp InTimestamp 
)
inline

◆ SetDataFromStructArrayView()

void UE::Dataflow::FContext::SetDataFromStructArrayView ( FContextCacheKey  InKey,
const FProperty InProperty,
const FConstStructArrayView StructArrayView,
const FGuid InNodeGuid,
uint32  InNodeHash,
const FTimestamp InTimestamp 
)

◆ SetDataFromStructView()

void UE::Dataflow::FContext::SetDataFromStructView ( FContextCacheKey  InKey,
const FProperty InProperty,
const FConstStructView StructView,
const FGuid InNodeGuid,
uint32  InNodeHash,
const FTimestamp InTimestamp 
)

◆ SetDataImpl()

void UE::Dataflow::FContext::SetDataImpl ( FContextCacheKey  Key,
TUniquePtr< FContextCacheElementBase > &&  DataStoreEntry 
)
virtual

◆ SetDataReference()

void UE::Dataflow::FContext::SetDataReference ( FContextCacheKey  Key,
const FProperty Property,
FContextCacheKey  ReferenceKey,
const FTimestamp InTimestamp 
)

◆ SetNullData()

void UE::Dataflow::FContext::SetNullData ( FContextCacheKey  InKey,
const FProperty InProperty,
const FGuid InNodeGuid,
uint32  InNodeHash,
const FTimestamp InTimestamp 
)

◆ SetThreaded()

void UE::Dataflow::FContext::SetThreaded ( bool  bValue)

◆ StaticType()

static FName UE::Dataflow::FContext::StaticType ( )
inlinestatic

◆ Warning()

void UE::Dataflow::FContext::Warning ( const FString &  InWarning,
const FDataflowNode InNode = nullptr,
const FDataflowOutput InOutput = nullptr 
)

Member Data Documentation

◆ AsyncEvaluator

FContextEvaluator UE::Dataflow::FContext::AsyncEvaluator
protected

◆ DataLock

TUniquePtr<FCriticalSection> UE::Dataflow::FContext::DataLock
protected

◆ DataStore

FContextCache UE::Dataflow::FContext::DataStore
protected

◆ OnContextHasError

FOnContextHasErrorMulticast UE::Dataflow::FContext::OnContextHasError

◆ OnContextHasInfo

FOnContextHasInfoMulticast UE::Dataflow::FContext::OnContextHasInfo

◆ OnContextHasWarning

FOnContextHasWarningMulticast UE::Dataflow::FContext::OnContextHasWarning

◆ OnNodeBeginEvaluateMulticast

FOnNodeBeginEvaluateMulticast UE::Dataflow::FContext::OnNodeBeginEvaluateMulticast

◆ OnNodeFinishEvaluateMulticast

FOnNodeFinishEvaluateMulticast UE::Dataflow::FContext::OnNodeFinishEvaluateMulticast

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