43 class IChunkReferenceTracker;
44 class IInstallerError;
45 class IInstallerAnalytics;
46 class IFileConstructorStat;
48 class IBuildManifestSet;
49 class IBuildInstallerThread;
50 class IConstructorChunkDbChunkSource;
51 class IConstructorInstallChunkSource;
52 class IConstructorCloudChunkSource;
135 virtual void Abort()
override;
177 void CountBytesProcessed(
const int64& ByteCount);
182 int64 GetRemainingBytes();
193 uint64 CalculateDiskSpaceRequirementsWithDeleteDuringInstall();
206 bool bIsDownloadStarted;
209 bool bInitialDiskSizeCheck;
212 bool bHasChunkDbSource =
false;
215 bool bStallWhenFileSystemThrottled =
false;
225 std::atomic_int32_t NextIndexToConstruct = 0;
227 struct FFileToConstruct
235 int32 LatestDependentInstallSource = -1;
244 IConstructorChunkDbChunkSource* ChunkDbSource;
245 IConstructorInstallChunkSource* InstallSource;
246 IConstructorCloudChunkSource* CloudSource;
258 uint64 DownloadRequirement = 0;
261 IChunkReferenceTracker* ChunkReferenceTracker;
264 IInstallerError* InstallerError;
267 IInstallerAnalytics* InstallerAnalytics;
269 IMessagePump* MessagePump =
nullptr;
272 IFileConstructorStat* FileConstructorStat;
274 bool bAllowMultipleFilesInFlight =
true;
276 bool bShouldLogNextDependencyWait =
true;
279 uint32 ExpectedChunkSize = 0;
287 uint32 MaxWriteBatchSize = 0;
290 int32 WriteCount = 0;
293 std::atomic_uint64_t RequiredDiskSpace;
296 std::atomic_uint64_t AvailableDiskSpace;
309 void GenericThreadFn(
int32 ThreadIndex);
310 int8 ThreadAssignments[EConstructorChunkLocation::COUNT];
311 int8 WriteThreadIndex = -1;
316 FEvent* WakeUpDispatchThreadEvent =
nullptr;
325 void RequestCompletedFn(
const FGuid&
Guid,
bool bAborted,
bool bFailedToRead,
void* UserPtr);
327 std::atomic_int32_t PendingHarvestRequests = 0;
328 void ChunkHarvestCompletedFn(
const FGuid&
Guid,
bool bAborted,
bool bFailedToRead,
void* UserPtr);
354 return BackingStoreStats;
358 FBackingStoreStats BackingStoreStats;
EConstructionError
Definition BuildPatchFileConstructor.cpp:161
bool bSuccess
Definition ConvexDecomposition3.cpp:819
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition BuildPatchFileConstructor.h:106
virtual void SetPaused(bool bInIsPaused) override
Definition BuildPatchFileConstructor.cpp:1628
virtual void Abort() override
Definition BuildPatchFileConstructor.cpp:1639
void WakeUpDispatch()
Definition BuildPatchFileConstructor.cpp:2691
FBackingStoreStats GetBackingStoreStats()
Definition BuildPatchFileConstructor.h:352
void GrabFilesInstalledToMemory(TMap< FString, TArray64< uint8 > > &OutFilesInstalledToMemory)
Definition BuildPatchFileConstructor.h:164
DECLARE_EVENT_OneParam(FBuildPatchFileConstructor, FOnBeforeDeleteFile, const FString &)
FOnBeforeDeleteFile & OnBeforeDeleteFile()
Definition BuildPatchFileConstructor.cpp:2047
uint64 GetAvailableDiskSpace()
Definition BuildPatchFileConstructor.cpp:2042
uint64 GetRequiredDiskSpace()
Definition BuildPatchFileConstructor.cpp:2037
void Run()
Definition BuildPatchFileConstructor.cpp:1909
~FBuildPatchFileConstructor()
Definition BuildPatchFileConstructor.cpp:1606
Definition IBuildManifestSet.h:85
Definition ChunkReferenceTracker.h:15
Definition ChunkDbChunkSource.h:44
TUniqueFunction< void(bool bIsAborted)> FRequestProcessFn
Definition ChunkSource.h:22
Definition CloudChunkSource.h:56
Definition InstallChunkSource.h:25
Definition Controllable.h:10
Definition BuildPatchFileConstructor.h:366
virtual void OnResumeCompleted()=0
virtual void OnChunkGet(const FGuid &ChunkId)=0
virtual void OnBeforeWrite()=0
virtual void OnFileProgress(const FString &Filename, int64 TotalBytes)=0
virtual void OnResumeStarted()=0
virtual void OnAfterRead(const ISpeedRecorder::FRecord &Record)=0
virtual void OnFileStarted(const FString &Filename, int64 FileSize)=0
virtual void OnTotalRequiredUpdated(int64 TotalBytes)=0
virtual void OnFileCompleted(const FString &Filename, bool bSuccess)=0
virtual void OnBeforeRead()=0
virtual void OnBeforeAdminister()=0
virtual void OnAfterAdminister(const ISpeedRecorder::FRecord &Record)=0
virtual ~IFileConstructorStat()
Definition BuildPatchFileConstructor.h:368
virtual void OnConstructionCompleted()=0
virtual void OnAfterWrite(const ISpeedRecorder::FRecord &Record)=0
virtual void OnProcessedDataUpdated(int64 TotalBytes)=0
Definition FileSystem.h:51
Definition InstallerAnalytics.h:17
Definition InstallerError.h:142
Definition MessagePump.h:13
EConstructorChunkLocation
Definition BuildPatchFileConstructor.h:30
@ DiskOverflow
Definition BuildPatchFileConstructor.h:34
@ Cloud
Definition BuildPatchFileConstructor.h:35
@ ChunkDb
Definition BuildPatchFileConstructor.h:32
@ Install
Definition BuildPatchFileConstructor.h:31
@ Retired
Definition BuildPatchFileConstructor.h:36
@ Memory
Definition BuildPatchFileConstructor.h:33
Definition Archive.h:1208
Definition BuildPatchManifest.h:64
Definition BuildPatchFileConstructor.cpp:403
Definition ThreadSafeBool.h:17
Definition IBuildInstallerSharedContext.h:33
Definition UnrealString.h.inl:34
Definition FunctionFwd.h:19
Definition UniquePtr.h:107
Definition BuildPatchFileConstructor.h:28
Definition BuildPatchFileConstructor.cpp:67
uint64 CalculateRequiredDiskSpace(const FBuildPatchAppManifestPtr &CurrentManifest, const FBuildPatchAppManifestRef &BuildManifest, const EInstallMode &InstallMode, const TSet< FString > &InInstallTags)
Definition BuildPatchFileConstructor.cpp:77
Definition BuildPatchFileConstructor.h:342
uint32 DiskLoadFailureCount
Definition BuildPatchFileConstructor.h:346
uint64 DiskPeakUsageBytes
Definition BuildPatchFileConstructor.h:343
uint32 DiskChunkLoadCount
Definition BuildPatchFileConstructor.h:348
uint64 MemoryPeakUsageBytes
Definition BuildPatchFileConstructor.h:344
uint64 MemoryLimitBytes
Definition BuildPatchFileConstructor.h:345
uint32 DiskLostChunkCount
Definition BuildPatchFileConstructor.h:347
Definition BuildPatchFileConstructor.h:59
FString InstallDirectory
Definition BuildPatchFileConstructor.h:64
TOptional< bool > StallWhenFileSystemThrottled
Definition BuildPatchFileConstructor.h:97
FString StagingDirectory
Definition BuildPatchFileConstructor.h:67
TOptional< int32 > DisableResumeBelowMB
Definition BuildPatchFileConstructor.h:98
IBuildInstallerSharedContext * SharedContext
Definition BuildPatchFileConstructor.h:81
bool bInstallToMemory
Definition BuildPatchFileConstructor.h:84
TOptional< int32 > IOBufferSizeMB
Definition BuildPatchFileConstructor.h:96
FString MetaDirectory
Definition BuildPatchFileConstructor.h:70
bool bDeleteChunkDBFilesAfterUse
Definition BuildPatchFileConstructor.h:88
IBuildManifestSet * ManifestSet
Definition BuildPatchFileConstructor.h:61
TOptional< int32 > IOBatchSizeMB
Definition BuildPatchFileConstructor.h:95
TOptional< bool > SpawnAdditionalIOThreads
Definition BuildPatchFileConstructor.h:94
FString BackingStoreDirectory
Definition BuildPatchFileConstructor.h:79
static const int32 DefaultIOBufferSizeMB
Definition BuildPatchFileConstructor.h:92
bool bSkipInitialDiskSizeCheck
Definition BuildPatchFileConstructor.h:86
static const int32 DefaultIOBatchSizeMB
Definition BuildPatchFileConstructor.h:91
EInstallMode InstallMode
Definition BuildPatchFileConstructor.h:76
static const bool bDefaultSpawnAdditionalIOThreads
Definition BuildPatchFileConstructor.h:90
bool bConstructInMemory
Definition BuildPatchFileConstructor.h:85
TArray< FString > ConstructList
Definition BuildPatchFileConstructor.h:73
Definition ManifestData.h:140
Definition SpeedRecorder.h:18
Definition BuildPatchFileConstructor.cpp:2223
Definition BuildPatchFileConstructor.cpp:179
Definition BuildPatchFileConstructor.cpp:262
Definition Optional.h:131