56 return FStreamableDelegateWithHandle::CreateLambda(
71 return FStreamableDelegateWithHandle::CreateLambda(
93 template<
typename DebugNameType = UE::FSourceLocation>
144 return InstanceTypeId;
146 template <
typename SubClassType>
bool IsType()
const
153 : InstanceTypeId(TypeId)
166template <
typename SubClassType>
199 return bLoadCompleted;
211 return !bLoadCompleted && !bCanceled;
217 return !bCanceled && !bReleased;
229 return bIsCombinedHandle;
235 return Error.
IsSet();
247 return DownloadCachePin;
265#if UE_WITH_PACKAGE_ACCESS_TRACKING
383 template <
typename CallableT>
456 template <
typename T>
476 template <
typename T>
479 AdditionalContextData.
Add(NewData);
488 template <
typename T>
493 if (InternalPtr.IsValid() && InternalPtr->IsType<T>())
507 template <
typename T>
514 if (InternalPtr.IsValid() && InternalPtr->IsType<T>())
525 struct FPrivateToken {
explicit FPrivateToken() =
default; };
548 bool IsHandleNameEmptyOrDefault()
const;
557 void NotifyParentsOfCompletion();
560 void NotifyParentsOfCancellation();
563 void UpdateCombinedHandle();
566 void CallUpdateDelegate();
569 void UnbindDelegates();
603 int32 StreamablesLoading;
606 int32 CompletedChildCount = 0;
609 int32 CanceledChildCount = 0;
620#if UE_WITH_PACKAGE_ACCESS_TRACKING
651 bool bReleaseWhenLoaded;
654 bool bIsCombinedHandle;
729 template<
typename PathContainerType = TArray<FSoftObjectPath>,
typename FuncType = FStreamableDelegateWithHandle,
typename = std::enable_if_t<!std::is_same_v<std::decay_t<PathContainerType>, FStreamableAsyncLoadParams>,
void> >
734 bool bManageActiveHandle =
false,
735 bool bStartStalled =
false,
736 FString DebugName = FString(),
748 FString DebugName = FString(),
759 template<
typename PathContainerType = TArray<FSoftObjectPath>>
762 bool bManageActiveHandle =
false,
763 FString DebugName = FString(),
776 bool bManageActiveHandle =
false,
781 template<
typename T >
784 bool bManageActiveHandle =
false,
791 template<
typename T >
794 bool bManageActiveHandle =
false,
801 template<
typename T >
804 bool bManageActiveHandle =
false,
900 void OnPreGarbageCollect();
903 ENGINE_API static bool ShouldStripDebugName();
911 struct FRedirectedPath
919 FRedirectedPath() : LoadedRedirector(nullptr) {}
923 TStreamableRedirects StreamableRedirects;
932 bool bForceSynchronousLoads;
938template <
typename CallableT>
948 Invoke(Callable, OwningManager->GetStreamed(Ref));
952 Invoke(Callable, Ref.ResolveObject());
964 Invoke(Callable, OwningManager->GetStreamed(Ref));
968 Invoke(Callable, Ref.ResolveObject());
975template<
typename PathContainerType,
typename FuncType,
typename >
980 bool bManageActiveHandle,
988 if constexpr (std::is_constructible_v<FStreamableDelegateWithHandle, FuncType>)
992 else if constexpr (std::is_constructible_v<FStreamableDelegate, FuncType>)
997 else if constexpr (std::is_invocable_v<FuncType, TSharedPtr<FStreamableHandle>>)
999 Params.OnComplete = FStreamableDelegateWithHandle::CreateLambda(
Forward<FuncType>(Callback));
1001 else if constexpr (std::is_invocable_v<FuncType>)
1009 static_assert(UE::StreamableManager::Private::always_false_v<FuncType>,
"Cannot bind callback");
1013 Params.bManageActiveHandle = bManageActiveHandle;
1014 Params.bStartStalled = bStartStalled;
1022template<
typename PathContainerType>
1025 bool bManageActiveHandle,
1029 return RequestSyncLoadInternal(
1031 bManageActiveHandle,
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
ECookLoadType
Definition ICookInfo.h:53
AUTORTFM_INFER UE_FORCEINLINE_HINT constexpr auto Invoke(FuncType &&Func, ArgTypes &&... Args) -> decltype(((FuncType &&) Func)((ArgTypes &&) Args...))
Definition Invoke.h:44
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
const bool
Definition NetworkReplayStreaming.h:178
uint8 TStreamableHandleContextDataTypeID
Definition StreamableManager.h:127
EStreamableManagerCombinedHandleOptions
Definition StreamableManager.h:658
EStreamableProgressType
Definition StreamableManager.h:21
@ TStreamableHandleContextDataTypeIDInvalid
Definition StreamableManager.h:129
TDelegate< void(TSharedPtr< struct FStreamableHandle >)> FStreamableDelegateWithHandle
Definition StreamableManager.h:33
int16 FStreamableDownloadPriority
Definition StreamableManager.h:37
TDelegate< void()> FStreamableDelegate
Definition StreamableManager.h:32
int32 TAsyncLoadPriority
Definition UObjectGlobals.h:726
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition GCObject.h:128
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SoftObjectPtr.h:763
Definition SubclassOf.h:30
Definition UniquePtr.h:107
Definition SourceLocation.h:21
static UE_CONSTEVAL FSourceLocation Current(FSourceLocationImpl Impl=FSourceLocationImpl::current()) noexcept
Definition SourceLocation.h:107
Definition IoStoreOnDemand.h:88
static UE_API FOnDemandContentHandle Create()
Definition IoStoreOnDemandInternals.cpp:49
Definition UnifiedError.h:424
Definition ObjectRedirector.h:30
Type
Definition UObjectGlobals.h:694
Type
Definition UObjectGlobals.h:1141
FFileAndLineAdapter FileAndLine(const FSourceLocation &Location)
Definition SourceLocationUtils.h:159
Definition StreamableManager.h:40
FStreamableDelegateWithHandle WrapDelegate(const FStreamableDelegate &InDelegate)
Definition StreamableManager.h:52
constexpr bool always_false_v
Definition StreamableManager.h:82
Definition SoftObjectPath.h:56
Definition StreamableManager.h:685
TAsyncLoadPriority Priority
Definition StreamableManager.h:695
TArray< FSoftObjectPath > TargetsToStream
Definition StreamableManager.h:687
FStreamableDelegateWithHandle OnComplete
Definition StreamableManager.h:689
bool bStartStalled
Definition StreamableManager.h:699
TOptional< FStreamableDownloadParams > DownloadParams
Definition StreamableManager.h:701
FStreamableDelegateWithHandle OnCancel
Definition StreamableManager.h:691
FStreamableUpdateDelegate OnUpdate
Definition StreamableManager.h:693
bool bManageActiveHandle
Definition StreamableManager.h:697
Definition StreamableManager.h:89
ENGINE_API FString GetDebugName() const
Definition StreamableManager.cpp:89
ENGINE_API void Release()
Definition StreamableManager.cpp:90
ENGINE_API ~FStreamableDownloadCachePin()
static FStreamableDownloadCachePin Create(DebugNameType &&DebugNameOrLocation)
Definition StreamableManager.h:94
ENGINE_API bool IsValid() const
Definition StreamableManager.cpp:91
ENGINE_API FStreamableDownloadCachePin()
ENGINE_API bool operator==(FStreamableDownloadCachePin &Other) const
Definition StreamableManager.cpp:92
Definition StreamableManager.h:672
FStreamableDownloadCachePin CachePin
Definition StreamableManager.h:674
bool bInstallSoftReferences
Definition StreamableManager.h:678
bool bDownloadOnly
Definition StreamableManager.h:680
FStreamableDownloadPriority Priority
Definition StreamableManager.h:676
Definition StreamableManager.h:141
bool IsType() const
Definition StreamableManager.h:146
FStreamableHandleContextDataBase(TStreamableHandleContextDataTypeID TypeId)
Definition StreamableManager.h:152
TStreamableHandleContextDataTypeID GetInstanceTypeId() const
Definition StreamableManager.h:142
static ENGINE_API TStreamableHandleContextDataTypeID AllocateClassTypeId()
Definition StreamableManager.cpp:389
Definition StreamableManager.h:191
const FString & GetDebugName() const
Definition StreamableManager.h:260
TArray< TSharedPtr< T > > GetContextDataOfType() const
Definition StreamableManager.h:508
bool HasError() const
Definition StreamableManager.h:233
ENGINE_API void StartStalledHandle()
Definition StreamableManager.cpp:1039
static ENGINE_API const FString HandleDebugName_CombinedHandle
Definition StreamableManager.h:539
ENGINE_API TSharedPtr< FStreamableHandle > CreateCombinedHandle(const TConstArrayView< TSharedPtr< FStreamableHandle > > &OtherHandles)
Definition StreamableManager.cpp:1370
static ENGINE_API const FString HandleDebugName_Error
Definition StreamableManager.h:540
ENGINE_API bool BindCancelDelegate(FStreamableDelegateWithHandle NewDelegate)
Definition StreamableManager.cpp:594
TArray< FStreamableDownloadCachePin > GetDownloadCachePins() const
Definition StreamableManager.cpp:687
void GetLoadedAssets(TArray< T * > &LoadedAssets) const
Definition StreamableManager.h:356
ENGINE_API struct FStreamableManager * GetOwningManager() const
Definition StreamableManager.cpp:897
bool IsLoadingInProgress() const
Definition StreamableManager.h:209
const TOptional< UE::UnifiedError::FError > & GetError() const
Definition StreamableManager.h:239
FStreamableHandle & operator=(const FStreamableHandle &)=delete
ENGINE_API TSharedPtr< FStreamableHandle > GetOutermostHandle()
Definition StreamableManager.cpp:1388
ENGINE_API EAsyncPackageState::Type WaitUntilComplete(float Timeout=0.0f, bool bStartStalledHandles=true)
Definition StreamableManager.cpp:630
ENGINE_API TSharedPtr< FStreamableHandle > FindMatchingHandle(TFunction< bool(const FStreamableHandle &)> Predicate) const
Definition StreamableManager.cpp:1352
ENGINE_API void GetLoadedAssets(TArray< UObject * > &LoadedAssets) const
Definition StreamableManager.cpp:819
ENGINE_API TOptional< FStreamableDownloadPriority > GetDownloadPriority() const
Definition StreamableManager.cpp:761
ENGINE_API void SetDebugNameIfEmptyOrDefault(const FString &NewName)
Definition StreamableManager.cpp:753
ENGINE_API bool HasUpdateDelegate() const
Definition StreamableManager.cpp:1063
float GetRelativeDownloadProgress() const
Definition StreamableManager.h:393
bool IsStalled() const
Definition StreamableManager.h:221
FStreamableDownloadCachePin GetDownloadCachePin() const
Definition StreamableManager.h:245
FStreamableHandle(const FStreamableHandle &)=delete
ENGINE_API bool BindCompleteDelegate(FStreamableDelegateWithHandle NewDelegate)
Definition StreamableManager.cpp:570
ENGINE_API void CancelHandle()
Definition StreamableManager.cpp:908
ENGINE_API bool HasCompleteDelegate() const
Definition StreamableManager.cpp:1053
static ENGINE_API void ExecuteDelegate(const FStreamableDelegateWithHandle &Delegate, TSharedPtr< FStreamableHandle > AssociatedHandle=nullptr, const FStreamableDelegateWithHandle &CancelDelegate=FStreamableDelegateWithHandle())
Definition StreamableManager.cpp:1330
TAsyncLoadPriority GetPriority() const
Definition StreamableManager.h:283
ENGINE_API UObject * GetLoadedAsset() const
Definition StreamableManager.cpp:805
ENGINE_API void ReleaseHandle()
Definition StreamableManager.cpp:990
ENGINE_API float GetProgress(EStreamableProgressType Type=EStreamableProgressType::Load) const
Definition StreamableManager.cpp:845
TSharedPtr< T > FindFirstContextDataOfType() const
Definition StreamableManager.h:489
float GetAbsoluteDownloadProgress() const
Definition StreamableManager.h:396
void AddContextData(const TSharedPtr< T > &NewData)
Definition StreamableManager.h:477
static ENGINE_API const FString HandleDebugName_AssetList
Definition StreamableManager.h:538
ENGINE_API bool HasLoadCompletedOrStalled() const
Definition StreamableManager.cpp:711
ENGINE_API bool SetDownloadPriority(FStreamableDownloadPriority Priority)
Definition StreamableManager.cpp:771
static ENGINE_API const FString HandleDebugName_Preloading
Definition StreamableManager.h:537
void ForEachLoadedAsset(CallableT Callable) const
Definition StreamableManager.h:939
bool IsActive() const
Definition StreamableManager.h:215
ENGINE_API bool HasCancelDelegate() const
Definition StreamableManager.cpp:1058
T * GetLoadedAsset() const
Definition StreamableManager.h:369
bool HasLoadCompleted() const
Definition StreamableManager.h:197
float GetLoadProgress() const
Definition StreamableManager.h:390
bool IsCombinedHandle() const
Definition StreamableManager.h:227
ENGINE_API void GetLoadedCount(int32 &LoadedCount, int32 &RequestedCount) const
Definition StreamableManager.cpp:827
bool WasCanceled() const
Definition StreamableManager.h:203
ENGINE_API void GetRequestedAssets(TArray< FSoftObjectPath > &AssetList, bool bIncludeChildren=true) const
Definition StreamableManager.cpp:783
T & FindOrAddContextData()
Definition StreamableManager.h:457
ENGINE_API bool BindUpdateDelegate(FStreamableUpdateDelegate NewDelegate)
Definition StreamableManager.cpp:618
ENGINE_API ~FStreamableHandle()
Definition StreamableManager.cpp:1070
Definition StreamableManager.h:706
static constexpr FStreamableDownloadPriority DownloadHighPriority
Definition StreamableManager.h:715
FStreamableManager(const FStreamableManager &)=delete
ENGINE_API void SetManagerName(FString InName)
Definition StreamableManager.cpp:1600
static constexpr FStreamableDownloadPriority DownloadVeryLowPriority
Definition StreamableManager.h:712
ENGINE_API FSoftObjectPath ResolveRedirects(const FSoftObjectPath &Target) const
Definition StreamableManager.cpp:2548
FStreamableManager & operator=(const FStreamableManager &)=delete
TSubclassOf< T > LoadSynchronous(const TSoftClassPtr< T > &Target, bool bManageActiveHandle=false, TSharedPtr< FStreamableHandle > *RequestHandlePointer=nullptr, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.h:802
static constexpr TAsyncLoadPriority AsyncLoadHighPriority
Definition StreamableManager.h:710
ENGINE_API TSharedPtr< FStreamableHandle > CreateErrorHandle(UE::UnifiedError::FError &&Error, FStreamableAsyncLoadParams &&Params, FString DebugName=FStreamableHandle::HandleDebugName_CombinedHandle, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.cpp:2497
ENGINE_API bool AreAllAsyncLoadsComplete() const
Definition StreamableManager.cpp:2306
ENGINE_API UObject * LoadSynchronous(const FSoftObjectPath &Target, bool bManageActiveHandle=false, TSharedPtr< FStreamableHandle > *RequestHandlePointer=nullptr, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.cpp:2056
ENGINE_API bool IsAsyncLoadComplete(const FSoftObjectPath &Target) const
Definition StreamableManager.cpp:2320
ENGINE_API TSharedPtr< FStreamableHandle > CreateCombinedHandle(TConstArrayView< TSharedPtr< FStreamableHandle > > ChildHandles, FString DebugName=FStreamableHandle::HandleDebugName_CombinedHandle, EStreamableManagerCombinedHandleOptions Options=EStreamableManagerCombinedHandleOptions::None, FStreamableAsyncLoadParams &&Params=FStreamableAsyncLoadParams{}, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.cpp:2358
ENGINE_API ~FStreamableManager()
Definition StreamableManager.cpp:1526
TSharedPtr< FStreamableHandle > RequestSyncLoad(PathContainerType &&TargetsToStream, bool bManageActiveHandle=false, FString DebugName=FString(), UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.h:1023
ENGINE_API bool GetActiveHandles(const FSoftObjectPath &Target, TArray< TSharedRef< FStreamableHandle > > &HandleList, bool bOnlyManagedHandles=false) const
Definition StreamableManager.cpp:2524
TSharedPtr< FStreamableHandle > RequestAsyncLoad(PathContainerType &&TargetsToStream, FuncType &&DelegateToCall=FStreamableDelegateWithHandle(), TAsyncLoadPriority Priority=DefaultAsyncLoadPriority, bool bManageActiveHandle=false, bool bStartStalled=false, FString DebugName=FString(), UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.h:976
static constexpr FStreamableDownloadPriority DownloadDefaultPriority
Definition StreamableManager.h:714
virtual ENGINE_API bool GetReferencerPropertyName(UObject *Object, FString &OutPropertyName) const override
Definition StreamableManager.cpp:1605
T * LoadSynchronous(const FSoftObjectPath &Target, bool bManageActiveHandle=false, TSharedPtr< FStreamableHandle > *RequestHandlePointer=nullptr, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.h:782
virtual FString GetReferencerName() const override
Definition StreamableManager.h:877
T * LoadSynchronous(const TSoftObjectPtr< T > &Target, bool bManageActiveHandle=false, TSharedPtr< FStreamableHandle > *RequestHandlePointer=nullptr, UE::FSourceLocation Location=UE::FSourceLocation::Current())
Definition StreamableManager.h:792
static constexpr FStreamableDownloadPriority DownloadVeryHighPriority
Definition StreamableManager.h:716
ENGINE_API const FString & GetManagerName() const
Definition StreamableManager.cpp:1595
static constexpr TAsyncLoadPriority DefaultAsyncLoadPriority
Definition StreamableManager.h:708
ENGINE_API FStreamableManager()
Definition StreamableManager.cpp:1518
static constexpr FStreamableDownloadPriority DownloadLowPriority
Definition StreamableManager.h:713
virtual ENGINE_API void AddReferencedObjects(FReferenceCollector &Collector) override
Definition StreamableManager.cpp:1581
Definition StreamableManager.cpp:1438
Definition NumericLimits.h:41
Definition ObjectPtr.h:488
Definition Optional.h:131
constexpr bool IsSet() const
Definition Optional.h:69
Definition SoftObjectPtr.h:174
Definition StreamableManager.h:133
Definition StreamableManager.h:168
TStreamableHandleContextData()
Definition StreamableManager.h:169
static TStreamableHandleContextDataTypeID GetClassTypeId()
Definition StreamableManager.h:173
Definition StreamableManager.cpp:402