UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InstallBundleManagerInterface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "Containers/Union.h"
10#include "InstallBundleTypes.h"
12#include "Logging/LogMacros.h"
14#include "Misc/EnumClassFlags.h"
15#include "Misc/Optional.h"
18#include "UObject/NameTypes.h"
19#include "UObject/UnrealNames.h"
20
21class IAnalyticsProviderET;
24
25namespace InstallBundleUtil
26{
27 struct FContentRequestSharedContext;
29}
30
47
61
67
74
80
86
88{
89 NotHandled, // Defer to the next handler
90 Retry, // Try to initialize again
91 StopInitialization, // Stop trying to initialize
92};
93
103
105
108
113
115
117
119
121
124
125class IInstallBundleManager : public TSharedFromThis<IInstallBundleManager>
126{
127public:
129
133 static INSTALLBUNDLEMANAGER_API FInstallBundleReleasedMultiDelegate ReleasedDelegate; // Called when content release request is complete
137
139
141
142 virtual void Initialize() {}
143
144 virtual bool HasBundleSource(FInstallBundleSourceType SourceType) const = 0;
145
146 virtual INSTALLBUNDLEMANAGER_API void SetContext(FName ContextName);
148
150
151
153 virtual void PopInitErrorCallback() = 0;
156
158
161
166
167 // Less expensive version of GetContentState() that only returns install state
168 // Synchronous versions return null if bundle manager is not yet initialized
175
178
181
183 UE_DEPRECATED(5.7, "Use overload with EInstallBundleCacheStatsFlags")
188
191
194
197
199
202
205
208
210
212
217 // Unblocks any pending downloads that are waiting for opting into using cellular data.
218 // Semantic wrapper until we get a better API.
220 {
221 // Some platforms like Android clears cellular preference internally after some time,
222 // we need to constantly set it per request to unblock any pending downloads.
224 }
225
226 virtual void SetCacheSize(FName CacheName, uint64 CacheSize) = 0;
227
231 virtual bool SupportsEarlyStartupPatching() const = 0;
232
233 virtual bool IsNullInterface() const = 0;
234
235 virtual void SetErrorSimulationCommands(const FString& CommandLine) {}
236
238
239 virtual void StartSessionPersistentStatTracking(const FString& SessionName, const TArray<FName>& RequiredBundles = TArray<FName>(), const FString& ExpectedAnalyticsID = FString(), bool bForceResetStatData = false, const FInstallBundleCombinedContentState* State = nullptr) {}
240 virtual void StopSessionPersistentStatTracking(const FString& SessionName) {}
241
242#if !UE_BUILD_SHIPPING
244#endif
245
246 virtual bool HasEverUpdatedContent() const { return true; }
247};
248
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_RetVal_OneParam(ReturnValueType, DelegateName, Param1Type)
Definition DelegateCombinations.h:54
#define DECLARE_DELEGATE_RetVal(ReturnValueType, DelegateName)
Definition DelegateCombinations.h:41
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
const void * FDelegateUserObjectConst
Definition IDelegateInstance.h:108
EInstallBundleManagerInitErrorHandlerResult
Definition InstallBundleManagerInterface.h:88
EInstallBundleReleaseRequestFlags
Definition InstallBundleTypes.h:270
EInstallBundleStatus
Definition InstallBundleTypes.h:288
EInstallBundlePauseFlags
Definition InstallBundleTypes.h:279
EInstallBundleManagerInitState
Definition InstallBundleTypes.h:79
EInstallBundleGetContentStateFlags
Definition InstallBundleTypes.h:200
EInstallBundleManagerInitResult
Definition InstallBundleTypes.h:86
EInstallBundleReleaseResult
Definition InstallBundleTypes.h:260
EInstallBundleRequestFlags
Definition InstallBundleTypes.h:244
EInstallBundleCacheStatsFlags
Definition InstallBundleTypes.h:488
EInstallBundleResult
Definition InstallBundleTypes.h:225
EInstallBundleManagerPatchCheckResult
Definition InstallBundleTypes.h:298
EInstallBundleRequestInfoFlags
Definition InstallBundleTypes.h:210
Definition IDelegateInstance.h:14
Definition InstallBundleTypes.h:47
Definition NameTypes.h:617
Definition Text.h:385
Definition InstallBundleManagerInterface.h:126
static INSTALLBUNDLEMANAGER_API FInstallBundleManagerReportingDelegate ReportingDelegate
Definition InstallBundleManagerInterface.h:135
INSTALLBUNDLEMANAGER_API TValueOrError< FInstallBundleRequestInfo, EInstallBundleResult > RequestUpdateContent(FName BundleName, EInstallBundleRequestFlags Flags, ELogVerbosity::Type LogVerbosityOverride=ELogVerbosity::NoLogging, InstallBundleUtil::FContentRequestSharedContextPtr RequestSharedContext=nullptr)
Definition InstallBundleManagerInterface.cpp:72
virtual void CancelAllGetContentStateRequests(FDelegateHandle Handle)=0
static INSTALLBUNDLEMANAGER_API FInstallBundleReleasedMultiDelegate ReleasedDelegate
Definition InstallBundleManagerInterface.h:133
virtual void CancelAllGetContentStateRequestsForTag(FName RequestTag)=0
virtual void CancelAllGetInstallStateRequestsForTag(FName RequestTag)=0
virtual void RequestPausedBundleCallback()=0
virtual bool HasBundleSource(FInstallBundleSourceType SourceType) const =0
virtual ~IInstallBundleManager()
Definition InstallBundleManagerInterface.h:140
static INSTALLBUNDLEMANAGER_API FInstallBundleChunkDownloadMetricsMultiDelegate InstallBundleChunkDownloadMetricsDelegate
Definition InstallBundleManagerInterface.h:130
virtual void GetDebugText(TArray< FString > &Output)
Definition InstallBundleManagerInterface.h:243
virtual void StartSessionPersistentStatTracking(const FString &SessionName, const TArray< FName > &RequiredBundles=TArray< FName >(), const FString &ExpectedAnalyticsID=FString(), bool bForceResetStatData=false, const FInstallBundleCombinedContentState *State=nullptr)
Definition InstallBundleManagerInterface.h:239
INSTALLBUNDLEMANAGER_API TValueOrError< FInstallBundleCombinedInstallState, EInstallBundleResult > GetInstallStateSynchronous(FName BundleName, bool bAddDependencies) const
Definition InstallBundleManagerInterface.cpp:87
INSTALLBUNDLEMANAGER_API void PauseUpdateContent(FName BundleName)
Definition InstallBundleManagerInterface.cpp:149
static INSTALLBUNDLEMANAGER_API FInstallBundleCompleteMultiDelegate InstallBundleCompleteDelegate
Definition InstallBundleManagerInterface.h:131
virtual INSTALLBUNDLEMANAGER_API void SetContext(FName ContextName)
Definition InstallBundleManagerInterface.cpp:58
INSTALLBUNDLEMANAGER_API TValueOrError< FInstallBundleReleaseRequestInfo, EInstallBundleResult > RequestReleaseContent(FName ReleaseName, EInstallBundleReleaseRequestFlags Flags, TArrayView< const FName > KeepNames=TArrayView< const FName >(), ELogVerbosity::Type LogVerbosityOverride=ELogVerbosity::NoLogging)
Definition InstallBundleManagerInterface.cpp:92
static INSTALLBUNDLEMANAGER_API TSharedPtr< IInstallBundleManager > GetPlatformInstallBundleManager()
Definition InstallBundleManagerInterface.cpp:23
INSTALLBUNDLEMANAGER_API void RequestRemoveContentOnNextInit(FName RemoveName, TArrayView< const FName > KeepNames=TArrayView< const FName >())
Definition InstallBundleManagerInterface.cpp:134
INSTALLBUNDLEMANAGER_API FDelegateHandle GetInstallState(FName BundleName, bool bAddDependencies, FInstallBundleGetInstallStateDelegate Callback, FName RequestTag=NAME_None)
Definition InstallBundleManagerInterface.cpp:82
virtual bool IsNullInterface() const =0
INSTALLBUNDLEMANAGER_API void CancelRequestRemoveContentOnNextInit(FName BundleName)
Definition InstallBundleManagerInterface.cpp:139
virtual void SetErrorSimulationCommands(const FString &CommandLine)
Definition InstallBundleManagerInterface.h:235
virtual FDelegateHandle GetInstallState(TArrayView< const FName > BundleNames, bool bAddDependencies, FInstallBundleGetInstallStateDelegate Callback, FName RequestTag=NAME_None)=0
static INSTALLBUNDLEMANAGER_API FInstallBundleManagerOnPatchCheckComplete PatchCheckCompleteDelegate
Definition InstallBundleManagerInterface.h:134
virtual FDelegateHandle GetContentState(TArrayView< const FName > BundleNames, EInstallBundleGetContentStateFlags Flags, bool bAddDependencies, FInstallBundleGetContentStateDelegate Callback, FName RequestTag=NAME_None)=0
INSTALLBUNDLEMANAGER_API void ResumeUpdateContent(FName BundleName)
Definition InstallBundleManagerInterface.cpp:154
virtual INSTALLBUNDLEMANAGER_API const TSharedPtr< IInstallBundleSource > GetBundleSource(FInstallBundleSourceType SourceType) const
Definition InstallBundleManagerInterface.cpp:67
static INSTALLBUNDLEMANAGER_API FInstallBundleManagerAllDownloadsCompleted AllDownloadsCompletedDelegate
Definition InstallBundleManagerInterface.h:136
virtual TSharedPtr< IAnalyticsProviderET > GetAnalyticsProvider() const
Definition InstallBundleManagerInterface.h:237
virtual INSTALLBUNDLEMANAGER_API void StartPatchCheck()
Definition InstallBundleManagerInterface.cpp:164
virtual FDelegateHandle PushInitErrorCallback(FInstallBundleManagerInitErrorHandler Callback)=0
INSTALLBUNDLEMANAGER_API FDelegateHandle GetContentState(FName BundleName, EInstallBundleGetContentStateFlags Flags, bool bAddDependencies, FInstallBundleGetContentStateDelegate Callback, FName RequestTag=NAME_None)
Definition InstallBundleManagerInterface.cpp:77
virtual void PopInitErrorCallback(FDelegateHandle Handle)=0
virtual void StopSessionPersistentStatTracking(const FString &SessionName)
Definition InstallBundleManagerInterface.h:240
virtual void CancelAllGetInstallStateRequests(FDelegateHandle Handle)=0
INSTALLBUNDLEMANAGER_API void UpdateContentRequestFlags(FName BundleName, EInstallBundleRequestFlags AddFlags, EInstallBundleRequestFlags RemoveFlags)
Definition InstallBundleManagerInterface.cpp:159
virtual void RemoveEnvironmentWantsPatchCheckBackCompatDelegate(FName Tag)
Definition InstallBundleManagerInterface.h:230
virtual TArray< FName > GetRequestedRemoveContentOnNextInit() const =0
static INSTALLBUNDLEMANAGER_API FInstallBundleManagerInitCompleteMultiDelegate InitCompleteDelegate
Definition InstallBundleManagerInterface.h:128
virtual bool HasEverUpdatedContent() const
Definition InstallBundleManagerInterface.h:246
virtual INSTALLBUNDLEMANAGER_API bool CopyReportTo(FInstallManagerBundleReport &Report)
Definition InstallBundleManagerInterface.cpp:62
INSTALLBUNDLEMANAGER_API void CancelUpdateContent(FName BundleName)
Definition InstallBundleManagerInterface.cpp:144
virtual TValueOrError< FInstallBundleCombinedInstallState, EInstallBundleResult > GetInstallStateSynchronous(TArrayView< const FName > BundleNames, bool bAddDependencies) const =0
static INSTALLBUNDLEMANAGER_API FInstallBundlePausedMultiDelegate PausedBundleDelegate
Definition InstallBundleManagerInterface.h:132
virtual void PopInitErrorCallback()=0
virtual TOptional< FInstallBundleProgress > GetBundleProgress(FName BundleName) const =0
virtual TValueOrError< FInstallBundleReleaseRequestInfo, EInstallBundleResult > RequestReleaseContent(TArrayView< const FName > ReleaseNames, EInstallBundleReleaseRequestFlags Flags, TArrayView< const FName > KeepNames=TArrayView< const FName >(), ELogVerbosity::Type LogVerbosityOverride=ELogVerbosity::NoLogging)=0
virtual void AddEnvironmentWantsPatchCheckBackCompatDelegate(FName Tag, FInstallBundleManagerEnvironmentWantsPatchCheck Delegate)
Definition InstallBundleManagerInterface.h:229
virtual EInstallBundleManagerInitState GetInitState() const =0
virtual void SetCacheSize(FName CacheName, uint64 CacheSize)=0
virtual void Initialize()
Definition InstallBundleManagerInterface.h:142
INSTALLBUNDLEMANAGER_API EInstallBundleResult FlushCache(FInstallBundleManagerFlushCacheCompleteDelegate Callback, ELogVerbosity::Type LogVerbosityOverride=ELogVerbosity::NoLogging)
Definition InstallBundleManagerInterface.cpp:129
virtual EInstallBundleResult FlushCache(FInstallBundleSourceOrCache SourceOrCache, FInstallBundleManagerFlushCacheCompleteDelegate Callback, ELogVerbosity::Type LogVerbosityOverride=ELogVerbosity::NoLogging)=0
virtual TValueOrError< FInstallBundleRequestInfo, EInstallBundleResult > RequestUpdateContent(TArrayView< const FName > BundleNames, EInstallBundleRequestFlags Flags, ELogVerbosity::Type LogVerbosityOverride=ELogVerbosity::NoLogging, InstallBundleUtil::FContentRequestSharedContextPtr RequestSharedContext=nullptr)=0
PRAGMA_DISABLE_DEPRECATION_WARNINGS virtual INSTALLBUNDLEMANAGER_API TArray< FInstallBundleCacheStats > GetCacheStats(EInstallBundleCacheDumpToLog DumpToLog, ELogVerbosity::Type LogVerbosityOverride=ELogVerbosity::NoLogging)
Definition InstallBundleManagerInterface.cpp:98
virtual void UnblockAnyDownloadsWaitingForCellularOptIn()
Definition InstallBundleManagerInterface.h:219
virtual EInstallBundleRequestFlags GetModifyableContentRequestFlags() const =0
virtual void PopInitErrorCallback(FDelegateUserObjectConst InUserObject)=0
virtual bool SupportsEarlyStartupPatching() const =0
virtual void SetCellularPreference(int32 Value)=0
Definition InstallBundleSourceInterface.h:30
Definition ArrayView.h:139
Definition Array.h:670
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition Union.h:64
Definition ValueOrError.h:58
Definition GenericPlatformFile.h:25
Type
Definition LogVerbosity.h:17
@ NoLogging
Definition LogVerbosity.h:19
Definition InstallBundleUtils.cpp:25
Definition DateTime.h:76
Definition InstallBundleTypes.h:477
Definition InstallBundleManagerInterface.h:95
float ChunkDownloadDuration
Definition InstallBundleManagerInterface.h:99
FName BundleName
Definition InstallBundleManagerInterface.h:96
FDateTime FetchStartTimeUTC
Definition InstallBundleManagerInterface.h:100
FDateTime FetchEndTimeUTC
Definition InstallBundleManagerInterface.h:101
FString ChunkName
Definition InstallBundleManagerInterface.h:97
int32 ChunkFileSize
Definition InstallBundleManagerInterface.h:98
Definition InstallBundleTypes.h:163
Definition InstallBundleTypes.h:115
Definition InstallBundleManagerInterface.h:82
FName BundleName
Definition InstallBundleManagerInterface.h:83
EInstallBundlePauseFlags PauseFlags
Definition InstallBundleManagerInterface.h:84
Definition InstallBundleManagerInterface.h:32
float Finishing_Percent
Definition InstallBundleManagerInterface.h:45
EInstallBundleStatus Status
Definition InstallBundleManagerInterface.h:35
FName BundleName
Definition InstallBundleManagerInterface.h:33
float BackgroundDownload_Percent
Definition InstallBundleManagerInterface.h:39
TArray< FBuildInstallerStat > Stats
Definition InstallBundleManagerInterface.h:43
float Install_Percent
Definition InstallBundleManagerInterface.h:41
float InstallOnly_Percent
Definition InstallBundleManagerInterface.h:40
EInstallBundlePauseFlags PauseFlags
Definition InstallBundleManagerInterface.h:37
Definition InstallBundleManagerInterface.h:76
EInstallBundleRequestInfoFlags InfoFlags
Definition InstallBundleManagerInterface.h:77
TArray< FName > BundlesEnqueued
Definition InstallBundleManagerInterface.h:78
Definition InstallBundleManagerInterface.h:63
FName BundleName
Definition InstallBundleManagerInterface.h:64
EInstallBundleReleaseResult Result
Definition InstallBundleManagerInterface.h:65
Definition InstallBundleManagerInterface.h:69
TArray< FInstallBundleRequestResultInfo > BundleResults
Definition InstallBundleManagerInterface.h:72
EInstallBundleRequestInfoFlags InfoFlags
Definition InstallBundleManagerInterface.h:70
TArray< FName > BundlesEnqueued
Definition InstallBundleManagerInterface.h:71
Definition InstallBundleManagerInterface.h:49
bool bIsStartup
Definition InstallBundleManagerInterface.h:52
bool bContainsChunks
Definition InstallBundleManagerInterface.h:53
bool bContainsIoStoreOnDemand
Definition InstallBundleManagerInterface.h:54
FName BundleName
Definition InstallBundleManagerInterface.h:50
EInstallBundleResult Result
Definition InstallBundleManagerInterface.h:51
FString OptionalErrorCode
Definition InstallBundleManagerInterface.h:59
FText OptionalErrorText
Definition InstallBundleManagerInterface.h:58
bool bContentWasInstalled
Definition InstallBundleManagerInterface.h:55
Definition InstallBundleManagerReporting.h:156
Definition Optional.h:131