13#include "DataflowInputOutput.generated.h"
57 bool bIsRequired =
false;
65 virtual bool IsConnected()
const override;
85 template<
typename TAnyType UE_REQUIRES(!std::is_same_v<
typename TAnyType::FStorageType,
void>)>
88 template<
typename TAnyType UE_REQUIRES(std::is_same_v<
typename TAnyType::FStorageType,
void>)>
156 UE_DEPRECATED(5.5, "Use PassthroughKey
instead")
159 UE::Dataflow::FConnectionKey PassthroughKey;
186 virtual bool IsConnected()
const override {
return HasAnyConnections(); }
222 Context.SetData(CacheKey(),
Property,
Forward<T>(InVal), GetOwningNodeGuid(), GetOwningNodeValueHash(), GetOwningNodeTimestamp());
230 Context.SetDataFromStructView(CacheKey(),
Property,
StructView, GetOwningNodeGuid(), GetOwningNodeValueHash(), GetOwningNodeTimestamp());
238 Context.SetDataFromStructArrayView(CacheKey(),
Property,
StructArrayView, GetOwningNodeGuid(), GetOwningNodeValueHash(), GetOwningNodeTimestamp());
242 template<
typename TAnyType>
245 TAnyType::FPolicyType::VisitPolicyByType(GetType(),
265 template<
class T,
typename = std::enable_if_t<!std::is_base_of_v<FDataflowAnyType, T>>>
268 if (HasFrozenValue())
270 return GetFrozenValue(
Default);
272 if (
Context.HasData(CacheKey()))
279 template<
typename TAnyType,
typename = std::enable_if_t<std::is_base_of_v<FDataflowAnyType, TAnyType>>>
282 if (HasFrozenValue())
284 return GetFrozenValue(
Default);
290 typename TAnyType::FStorageType ReturnValue =
Default;
291 TAnyType::FPolicyType::VisitPolicyByType(GetType(),
296 const FSingleType& CachedValue = (*CacheEntry)->GetTypedData<FSingleType>(
Context,
nullptr,
Default);
313 if (HasFrozenValue())
315 return GetFrozenValue(
Default);
319 Context.SetData(CacheKey(),
Property,
Default, GetOwningNodeGuid(), GetOwningNodeValueHash(), GetOwningNodeTimestamp());
322 if (
Context.HasData(CacheKey()))
334 return *(
const T*)GetFrozenPropertyValue((
const uint8*)&
Default);
343 return Context.HasData(CacheKey(), GetOwningNodeTimestamp());
426template<
typename TAnyType UE_REQUIRES(!std::is_same_v<
typename TAnyType::FStorageType,
void>)>
429 typename TAnyType::FStorageType ReturnValue =
Default;
442 TAnyType::FPolicyType::VisitPolicyByType(
GetType(),
447 const FSingleType& CachedValue = (*CacheEntry)->GetTypedData<FSingleType>(
Context,
nullptr,
Default);
457template<
typename TAnyType UE_REQUIRES(std::is_same_v<
typename TAnyType::FStorageType,
void>)>
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
Definition UnrealType.h:3702
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition UnrealType.h:174
Definition SharedPointer.h:692
Definition UniquePtr.h:107
Definition DataflowConnection.h:91
Definition DataflowNodeParameters.h:134
Definition DataflowAnyType.cpp:10
uint32 FContextCacheKey
Definition DataflowContextCache.h:23
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition StructArrayView.h:398
Definition StructView.h:217
Definition DataflowInputOutput.h:379
virtual int32 GetContainerIndex() const override
Definition DataflowInputOutput.h:391
virtual uint32 GetContainerElementOffset() const override
Definition DataflowInputOutput.h:392
Definition DataflowConnection.h:131
FName GetType() const
Definition DataflowConnection.h:238
DATAFLOWCORE_API FGuid GetOwningNodeGuid() const
Definition DataflowConnection.cpp:84
const FProperty * Property
Definition DataflowConnection.h:136
UE::Dataflow::FContextCacheKey CacheKey() const
Definition DataflowConnection.h:254
DATAFLOWCORE_API uint32 GetOwningNodeValueHash() const
Definition DataflowConnection.cpp:94
DATAFLOWCORE_API UE::Dataflow::FTimestamp GetOwningNodeTimestamp() const
Definition DataflowConnection.cpp:89
static void To(const T &From, TToType &To)
Definition DataflowTypePolicy.h:411
static void From(const TFromType &From, T &To)
Definition DataflowTypePolicy.h:408
Definition DataflowNode.h:52
Definition DataflowInputOutput.h:149
bool HasAnyConnections() const
Definition DataflowInputOutput.h:185
TAnyType::FStorageType ReadValue(UE::Dataflow::FContext &Context, const typename TAnyType::FStorageType &Default) const
Definition DataflowInputOutput.h:280
FDataflowOutput & operator=(FDataflowOutput &&)=delete
const T & GetFrozenValue(const T &Default) const
Definition DataflowInputOutput.h:332
FDataflowOutput(FDataflowOutput &&)=delete
PRAGMA_DISABLE_DEPRECATION_WARNINGS ~FDataflowOutput()=default
void SetValueFromStructView(const FConstStructView &StructView, UE::Dataflow::FContext &Context) const
Definition DataflowInputOutput.h:226
const T & GetValue(UE::Dataflow::FContext &Context, const T &Default) const
Definition DataflowInputOutput.h:311
const T & ReadValue(UE::Dataflow::FContext &Context, const T &Default) const
Definition DataflowInputOutput.h:266
FDataflowOutput & operator=(const FDataflowOutput &)=delete
virtual void * GetPassthroughRealAddress() const
Definition DataflowInputOutput.h:208
FDataflowOutput(const FDataflowOutput &)=delete
void SetValueFromAnyType(const typename TAnyType::FStorageType &InVal, UE::Dataflow::FContext &Context) const
Definition DataflowInputOutput.h:243
void SetValue(T &&InVal, UE::Dataflow::FContext &Context) const
Definition DataflowInputOutput.h:218
virtual bool IsConnected() const override
Definition DataflowInputOutput.h:186
void SetValueFromStructArrayView(const FConstStructArrayView &StructArrayView, UE::Dataflow::FContext &Context) const
Definition DataflowInputOutput.h:234
bool HasCachedValue(const UE::Dataflow::FContext &Context) const
Definition DataflowInputOutput.h:341
static CORE_API FGuid NewGuid()
Definition Guid.cpp:236
Definition PropertyBag.h:418
Definition StructOpsTypeTraits.h:11
@ WithCopy
Definition StructOpsTypeTraits.h:17
Definition StructOpsTypeTraits.h:46
Definition DataflowInputOutput.h:138
FArrayOutputParameters()
Definition DataflowInputOutput.h:139
uint32 InnerOffset
Definition DataflowInputOutput.h:143
const FArrayProperty * ArrayProperty
Definition DataflowInputOutput.h:142
Definition DataflowConnection.h:48
Definition DataflowConnection.h:70
Definition DataflowContextCache.h:640
Definition DataflowInputOutput.h:131
FOutputParameters(FName InType=NAME_None, FName InName=NAME_None, FDataflowNode *InOwner=nullptr, const FProperty *InProperty=nullptr, uint32 InOffset=INDEX_NONE, FGuid InGuid=FGuid::NewGuid())
Definition DataflowInputOutput.h:132
Definition DataflowContextCache.h:40
static DATAFLOWCORE_API Type Current()
Definition DataflowNodeParameters.cpp:105