UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InstallChunkSource.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
8
10
11namespace BuildPatchServices
12{
13 class IChunkStore;
14 class IChunkReferenceTracker;
15 class IInstallerError;
16 class IInstallChunkSourceStat;
17 class IFileSystem;
18 class IBuildManifestSet;
19
20
25 {
26 public:
28
29 // Return the chunks this source can provide.
30 virtual const TSet<FGuid>& GetAvailableChunks() const = 0;
31
32 // Notification that a file is about to be deleted so we need to clear out any references.
33 virtual void OnBeforeDeleteFile(const FString& FilePath) = 0;
34
35 // Return the list of chunks for a file so that the constructor can harvest them before the file
36 // is deleted
37 virtual void GetChunksForFile(const FString& FilePath, TSet<FGuid>& OutChunks) const = 0;
38
39 // Call the lambda on each file the chunk needs to load bits from.
40 virtual void EnumerateFilesForChunk(const FGuid& DataId, TUniqueFunction<void(const FString& NormalizedInstallDirectory, const FString& NormalizedFileName)>&& Callback) const = 0;
41
42 // Tell the install source when files will be going away so we can report when chunks are unavailable.
43 // This should be the ChunkReferenceTracker->GetCurrentUsageIndex at which the files will get deleted.
44 virtual void SetFileRetirementPositions(TMap<FString, int32>&& FileRetirementPositions) = 0;
45
46 // InstallationSources is the install manifest for each installed app that we can pull from. This
47 // is expected to be a single entry.
48 // LONGTERM question -- how does this work during delta generation? It is expected that all apps
49 // are installed and chunks are pulled from everything?
52 IInstallChunkSourceStat* InstallChunkSourceStat,
53 const TMultiMap<FString, FBuildPatchAppManifestRef>& InstallationSources,
55 };
56
62 {
63 public:
67 enum class ELoadResult : uint8
68 {
69 Success = 0,
70
71 // The hash information was missing.
73
74 // Chunk part information was missing.
76
77 // Failed to open a source file.
79
80 // The expected source file size was not matched.
82
83 // The expected data hash for the chunk did not match.
85
86 // The process has been aborted.
87 Aborted,
88
89 // Invalid assemble structure (i.e. overlapping chunk parts)
91 };
92
93 public:
95
100 UE_DEPRECATED(5.6, "No longer batch loaded")
101 virtual void OnBatchStarted(const TArray<FGuid>& ChunkIds) {};
102
107 virtual void OnLoadStarted(const FGuid& ChunkId) = 0;
108
115 virtual void OnLoadComplete(const FGuid& ChunkId, const ELoadResult& Result, const ISpeedRecorder::FRecord& Record) = 0;
116
121 UE_DEPRECATED(5.6, "No longer batch loaded")
122 virtual void OnAcceptedNewRequirements(const TSet<FGuid>& ChunkIds) {};
123 };
124
128 const TCHAR* ToString(const IInstallChunkSourceStat::ELoadResult& LoadResult);
129}
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition InstallChunkSource.h:25
virtual void GetChunksForFile(const FString &FilePath, TSet< FGuid > &OutChunks) const =0
virtual void OnBeforeDeleteFile(const FString &FilePath)=0
static IConstructorInstallChunkSource * CreateInstallSource(IFileSystem *FileSystem, IInstallChunkSourceStat *InstallChunkSourceStat, const TMultiMap< FString, FBuildPatchAppManifestRef > &InstallationSources, const TSet< FGuid > &ChunksThatWillBeNeeded)
Definition InstallChunkSource.cpp:603
virtual void SetFileRetirementPositions(TMap< FString, int32 > &&FileRetirementPositions)=0
virtual ~IConstructorInstallChunkSource()
Definition InstallChunkSource.h:27
virtual void EnumerateFilesForChunk(const FGuid &DataId, TUniqueFunction< void(const FString &NormalizedInstallDirectory, const FString &NormalizedFileName)> &&Callback) const =0
virtual const TSet< FGuid > & GetAvailableChunks() const =0
Definition FileSystem.h:51
Definition InstallChunkSource.h:62
virtual void OnLoadStarted(const FGuid &ChunkId)=0
virtual void OnLoadComplete(const FGuid &ChunkId, const ELoadResult &Result, const ISpeedRecorder::FRecord &Record)=0
ELoadResult
Definition InstallChunkSource.h:68
virtual void OnBatchStarted(const TArray< FGuid > &ChunkIds)
Definition InstallChunkSource.h:101
virtual ~IInstallChunkSourceStat()
Definition InstallChunkSource.h:94
virtual void OnAcceptedNewRequirements(const TSet< FGuid > &ChunkIds)
Definition InstallChunkSource.h:122
Definition IBuildInstallerSharedContext.h:33
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition FunctionFwd.h:19
Definition BuildPatchFileConstructor.h:28
Definition SpeedRecorder.h:18
Definition Guid.h:109