UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BuildPatchManifest.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Misc/Guid.h"
8#include "Data/ChunkData.h"
9#include "Data/ManifestData.h"
10
13
18
24 : public IManifestField
25{
26public:
30 FBuildPatchCustomField(const FString& Value);
31
32 // START IBuildManifest Interface
33 virtual FString AsString() const override;
34 virtual double AsDouble() const override;
35 virtual int64 AsInteger() const override;
36 // END IBuildManifest Interface
37
38private:
43
44private:
45 // Holds the underlying value
46 FString CustomValue;
47};
48
49// Required to allow private access to manifest builder for now..
50namespace BuildPatchServices
51{
52 class FBuildPatchInstaller;
53 class FManifestBuilder;
54 class FManifestData;
55 class FChunkDeltaOptimiser;
56 class FBuildPatchManifestSet;
57}
58
63 : public IBuildManifest
64{
65 // Allow access to build processor classes
66 friend class FBuildDataGenerator;
71 friend class FBuildDiffManifests;
72 friend class FManifestUObject;
76public:
77
82
86 FBuildPatchAppManifest(const uint32& InAppID, const FString& AppName);
87
92
97
98 // START IBuildManifest Interface
99 virtual uint32 GetAppID() const override;
100 virtual const FString& GetAppName() const override;
101 virtual const FString& GetVersionString() const override;
102 virtual const FString& GetLaunchExe() const override;
103 virtual const FString& GetLaunchCommand() const override;
104 virtual const TSet<FString>& GetPrereqIds() const override;
105 virtual const FString& GetPrereqName() const override;
106 virtual const FString& GetPrereqPath() const override;
107 virtual const FString& GetPrereqArgs() const override;
108 virtual int64 GetDownloadSize() const override;
109 virtual int64 GetDownloadSize(const TSet<FString>& Tags) const override;
110 virtual int64 GetDeltaDownloadSize(const TSet<FString>& Tags, const IBuildManifestRef& PreviousVersion) const override;
112 virtual int64 GetBuildSize() const override;
113 virtual int64 GetBuildSize(const TSet<FString>& Tags) const override;
114 virtual TArray<FString> GetBuildFileList() const override;
115 virtual TArray<FStringView> GetBuildFileListView() const override;
116 virtual TArray<FString> GetBuildFileList(const TSet<FString>& Tags) const override;
117 virtual TArray<FStringView> GetBuildFileListView(const TSet<FString>& Tags) const override;
118 virtual int64 GetFileSize(FStringView Filename) const override;
119 virtual int64 GetFileSize(const TArray<FString>& Filenames) const override;
120 virtual int64 GetFileSize(const TSet <FString>& Filenames) const override;
121 virtual bool GetFileHash(const FString& Filename, FSHAHash& OutHash) const override;
122 virtual TSet<FString> GetFileTagList() const override;
123 virtual void GetFileTagList(TSet<FString>& Tags) const override;
124 virtual void GetOutdatedFiles(const IBuildManifestRef& OldManifest, TSet<FString>& OutdatedFiles) const override;
126 virtual void GetRemovableFiles(const TCHAR* InstallPath, TArray<FString>& RemovableFiles) const override;
127 virtual bool NeedsResaving() const override;
128 virtual void CopyCustomFields(const IBuildManifestRef& Other, bool bClobber) override;
129 virtual const IManifestFieldPtr GetCustomField(const FString& FieldName) const override;
130 virtual const IManifestFieldPtr SetCustomField(const FString& FieldName, const FString& Value) override;
131 virtual const IManifestFieldPtr SetCustomField(const FString& FieldName, const double& Value) override;
132 virtual const IManifestFieldPtr SetCustomField(const FString& FieldName, const int64& Value) override;
133 virtual void RemoveCustomField(const FString& FieldName) override;
134 virtual IBuildManifestRef Duplicate() const override;
135 // END IBuildManifest Interface
136
140 virtual const FString& GetBuildId() const;
141
147 virtual bool LoadFromFile(const FString& Filename);
148
154 virtual bool DeserializeFromData(const TArray<uint8>& DataInput);
155
161 virtual bool DeserializeFromJSON(const FString& JSONInput);
162
170 virtual bool SaveToFile(const FString& Filename, BuildPatchServices::EFeatureLevel SaveFormat = BuildPatchServices::EFeatureLevel::Latest);
171
176 virtual void SerializeToJSON(FString& JSONOutput);
177
182 virtual BuildPatchServices::EFeatureLevel GetFeatureLevel() const;
183
190
196 virtual uint32 GetNumberOfChunkReferences(const FGuid& ChunkGuid) const;
197
203 virtual int64 GetDataSize(const FGuid& DataGuid) const;
204
210 virtual int64 GetDataSize(const TArray<FGuid>& DataGuids) const;
211 virtual int64 GetDataSize(const TSet <FGuid>& DataGuids) const;
212
217 virtual uint32 GetNumFiles() const;
218
223 virtual void GetFileList(TArray<FString>& Filenames) const;
224 virtual void GetFileList(TArray<FStringView>& Filenames) const;
225 virtual void GetFileList(TSet <FString>& Filenames) const;
226
232 virtual void GetTaggedFileList(const TSet<FString>& Tags, TArray<FString>& TaggedFiles) const;
233 virtual void GetTaggedFileList(const TSet<FString>& Tags, TArray<FStringView>& TaggedFiles) const;
234 virtual void GetTaggedFileList(const TSet<FString>& Tags, TSet<FString>& TaggedFiles) const;
235
240 virtual void GetDataList(TArray<FGuid>& DataGuids) const;
241 virtual void GetDataList(TSet <FGuid>& DataGuids) const;
242
248 virtual const BuildPatchServices::FFileManifest* GetFileManifest(const FString& Filename) const;
249
254 virtual bool IsFileDataManifest() const;
255
262 virtual bool GetChunkHash(const FGuid& ChunkGuid, uint64& OutHash) const;
263
270 virtual bool GetChunkShaHash(const FGuid& ChunkGuid, FSHAHash& OutHash) const;
271
277 virtual const BuildPatchServices::FChunkInfo* GetChunkInfo(const FGuid& ChunkGuid) const;
278
285 virtual bool GetFileHash(const FGuid& FileGuid, FSHAHash& OutHash) const; // DEPRECATE ME
286
293 virtual bool GetFilePartHash(const FGuid& FilePartGuid, uint64& OutHash) const;
294
295
304
311 virtual void GetOutdatedFiles(const FBuildPatchAppManifestPtr& OldManifest, const FString& InstallDirectory, TSet<FString>& OutDatedFiles) const;
312 virtual void GetOutdatedFiles(const FBuildPatchAppManifest* OldManifest, const FString& InstallDirectory, TSet<FString>& OutDatedFiles) const;
313 virtual void GetOutdatedFiles(const FBuildPatchAppManifest* OldManifest, const FString& InstallDirectory, const TSet<FString>& FilesToCheck, TSet<FString>& OutDatedFiles) const;
314
320 virtual bool IsFileOutdated(const FBuildPatchAppManifestRef& OldManifest, const FString& Filename) const;
321 virtual bool IsFileOutdated(const FBuildPatchAppManifest& OldManifest, const FString& Filename) const;
322
329
330
332 virtual bool HasFileAttributes() const;
333
334private:
338 void DestroyData();
339
340protected:
344 void InitLookups();
345private:
346
350 int32 EnumerateProducibleChunks_Internal(const TFunction<bool(const FString&)>& FileAccessChecker, const TSet<FGuid>& ChunksRequired, TSet<FGuid>& ChunksAvailable) const;
351
352protected:
359
360private:
361
363 FDelegateHandle OnPreExitHandle;
364
366 TMap<FGuid, const FString*> FileNameLookup;
370
372 int64 TotalBuildSize;
373 int64 TotalDownloadSize;
374
376 bool bNeedsResaving;
377};
TSharedRef< class FBuildPatchAppManifest, ESPMode::ThreadSafe > FBuildPatchAppManifestRef
Definition BuildPatchManifest.h:17
TSharedPtr< class FBuildPatchCustomField, ESPMode::ThreadSafe > FBuildPatchCustomFieldPtr
Definition BuildPatchManifest.h:14
TSharedRef< class FBuildPatchCustomField, ESPMode::ThreadSafe > FBuildPatchCustomFieldRef
Definition BuildPatchManifest.h:15
TSharedPtr< class FBuildPatchAppManifest, ESPMode::ThreadSafe > FBuildPatchAppManifestPtr
Definition BuildPatchManifest.h:16
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
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
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition BuildPatchInstaller.h:62
Definition BuildPatchManifestSet.cpp:31
Definition ManifestBuilder.cpp:38
Definition ManifestData.h:191
Definition BuildPatchGeneration.h:11
Definition BuildPatchMergeManifests.h:8
Definition BuildPatchManifest.h:64
FBuildPatchAppManifest()
Definition BuildPatchManifest.cpp:115
virtual bool GetChunkShaHash(const FGuid &ChunkGuid, FSHAHash &OutHash) const
Definition BuildPatchManifest.cpp:1057
virtual void RemoveCustomField(const FString &FieldName) override
Definition BuildPatchManifest.cpp:1203
virtual void GetRemovableFiles(const IBuildManifestRef &OldManifest, TArray< FString > &RemovableFiles) const override
Definition BuildPatchManifest.cpp:1263
virtual const FString & GetPrereqPath() const override
Definition BuildPatchManifest.cpp:1143
friend class BuildPatchServices::FChunkDeltaOptimiser
Definition BuildPatchManifest.h:74
virtual const BuildPatchServices::FFileManifest * GetFileManifest(const FString &Filename) const
Definition BuildPatchManifest.cpp:1035
virtual bool HasFileAttributes() const
Definition BuildPatchManifest.cpp:1251
virtual bool NeedsResaving() const override
Definition BuildPatchManifest.cpp:1313
virtual const FString & GetBuildId() const
Definition BuildPatchManifest.cpp:1153
virtual const FString & GetLaunchCommand() const override
Definition BuildPatchManifest.cpp:1128
virtual int64 GetBuildSize() const override
Definition BuildPatchManifest.cpp:841
virtual bool DeserializeFromJSON(const FString &JSONInput)
Definition BuildPatchManifest.cpp:400
virtual void GetOutdatedFiles(const IBuildManifestRef &OldManifest, TSet< FString > &OutdatedFiles) const override
Definition BuildPatchManifest.cpp:1319
~FBuildPatchAppManifest()
Definition BuildPatchManifest.cpp:141
virtual void GetTaggedFileList(const TSet< FString > &Tags, TArray< FString > &TaggedFiles) const
Definition BuildPatchManifest.cpp:980
friend class FBuildDataFileProcessor
Definition BuildPatchManifest.h:67
virtual void GetChunksRequiredForFiles(const TSet< FString > &Filenames, TSet< FGuid > &RequiredChunks) const
Definition BuildPatchManifest.cpp:746
virtual TArray< FStringView > GetBuildFileListView() const override
Definition BuildPatchManifest.cpp:877
BuildPatchServices::FFileManifestList FileManifestList
Definition BuildPatchManifest.h:357
virtual const TSet< FString > & GetPrereqIds() const override
Definition BuildPatchManifest.cpp:1133
virtual bool SaveToFile(const FString &Filename, BuildPatchServices::EFeatureLevel SaveFormat=BuildPatchServices::EFeatureLevel::Latest)
Definition BuildPatchManifest.cpp:146
virtual bool LoadFromFile(const FString &Filename)
Definition BuildPatchManifest.cpp:172
virtual void CopyCustomFields(const IBuildManifestRef &Other, bool bClobber) override
Definition BuildPatchManifest.cpp:1163
virtual void SerializeToJSON(FString &JSONOutput)
Definition BuildPatchManifest.cpp:265
virtual uint32 GetNumberOfChunkReferences(const FGuid &ChunkGuid) const
Definition BuildPatchManifest.cpp:1402
virtual const IManifestFieldPtr SetCustomField(const FString &FieldName, const FString &Value) override
Definition BuildPatchManifest.cpp:1187
virtual const FString & GetAppName() const override
Definition BuildPatchManifest.cpp:1113
virtual bool IsFileDataManifest() const
Definition BuildPatchManifest.cpp:1041
virtual const FString & GetPrereqArgs() const override
Definition BuildPatchManifest.cpp:1148
virtual const FString & GetPrereqName() const override
Definition BuildPatchManifest.cpp:1138
virtual const FString & GetLaunchExe() const override
Definition BuildPatchManifest.cpp:1123
virtual int32 EnumerateProducibleChunks(const TSet< FString > &TagSet, const TSet< FGuid > &ChunksRequired, TSet< FGuid > &ChunksAvailable) const
Definition BuildPatchManifest.cpp:1209
virtual bool IsFileOutdated(const FBuildPatchAppManifestRef &OldManifest, const FString &Filename) const
Definition BuildPatchManifest.cpp:1374
virtual int64 GetDownloadSize() const override
Definition BuildPatchManifest.cpp:761
virtual bool GetFileHash(const FString &Filename, FSHAHash &OutHash) const override
Definition BuildPatchManifest.cpp:1086
virtual bool GetChunkHash(const FGuid &ChunkGuid, uint64 &OutHash) const
Definition BuildPatchManifest.cpp:1046
virtual const IManifestFieldPtr GetCustomField(const FString &FieldName) const override
Definition BuildPatchManifest.cpp:1177
virtual uint32 GetAppID() const override
Definition BuildPatchManifest.cpp:1108
BuildPatchServices::FCustomFields CustomFields
Definition BuildPatchManifest.h:358
virtual const FString & GetVersionString() const override
Definition BuildPatchManifest.cpp:1118
virtual bool DeserializeFromData(const TArray< uint8 > &DataInput)
Definition BuildPatchManifest.cpp:182
BuildPatchServices::FManifestMeta ManifestMeta
Definition BuildPatchManifest.h:355
virtual BuildPatchServices::EFeatureLevel GetFeatureLevel() const
Definition BuildPatchManifest.cpp:741
virtual int64 GetFileSize(FStringView Filename) const override
Definition BuildPatchManifest.cpp:908
virtual int64 GetDataSize(const FGuid &DataGuid) const
Definition BuildPatchManifest.cpp:918
virtual void GetDataList(TArray< FGuid > &DataGuids) const
Definition BuildPatchManifest.cpp:1025
virtual TArray< FString > GetBuildFileList() const override
Definition BuildPatchManifest.cpp:870
virtual TSet< FString > GetFileTagList() const override
Definition BuildPatchManifest.cpp:968
virtual bool GetFilePartHash(const FGuid &FilePartGuid, uint64 &OutHash) const
Definition BuildPatchManifest.cpp:1097
friend class FBuildDiffManifests
Definition BuildPatchManifest.h:71
virtual uint32 GetNumFiles() const
Definition BuildPatchManifest.cpp:948
virtual IBuildManifestRef Duplicate() const override
Definition BuildPatchManifest.cpp:1158
virtual const BuildPatchServices::FChunkInfo * GetChunkInfo(const FGuid &ChunkGuid) const
Definition BuildPatchManifest.cpp:1069
void InitLookups()
Definition BuildPatchManifest.cpp:217
virtual void GetFileList(TArray< FString > &Filenames) const
Definition BuildPatchManifest.cpp:953
BuildPatchServices::FChunkDataList ChunkDataList
Definition BuildPatchManifest.h:356
virtual int64 GetDeltaDownloadSize(const TSet< FString > &Tags, const IBuildManifestRef &PreviousVersion) const override
Definition BuildPatchManifest.cpp:797
Definition BuildPatchManifest.h:25
virtual double AsDouble() const override
Definition BuildPatchManifest.cpp:90
virtual int64 AsInteger() const override
Definition BuildPatchManifest.cpp:101
virtual FString AsString() const override
Definition BuildPatchManifest.cpp:85
Definition IDelegateInstance.h:14
Definition ManifestUObject.h:179
Definition SecureHash.h:226
Definition IBuildManifest.h:55
Definition IBuildManifest.h:25
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition BuildPatchFileConstructor.h:28
Definition ManifestData.h:111
Definition ChunkData.h:240
Definition ManifestData.h:177
Definition ManifestData.h:159
Definition ManifestData.h:140
Definition ManifestData.h:75
Definition Guid.h:109