UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IBuildManifestSet.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5
7
9
10namespace BuildPatchServices
11{
13 {
15 FString Name;
16 FString Path;
17 FString Args;
18 FString AppName;
21 };
22
29 {
30 public:
32 : InstallerAction(InInstallerAction)
33 , CurrentManifest(StaticCastSharedPtr<FBuildPatchAppManifest>(InstallerAction.TryGetCurrentManifest()))
34 , InstallManifest(StaticCastSharedPtr<FBuildPatchAppManifest>(InstallerAction.TryGetInstallManifest()))
35 {
36 // Pre-process install tags. Doing this logic here means it doesn't need repeating around lower level code.
37 // No tags means full installation.
38 InstallTags = InstallerAction.GetInstallTags();
39 if (InstallTags.Num() == 0)
40 {
42 }
43 // Always require the empty tag.
44 InstallTags.Add(TEXT(""));
45 // Cache tagged files.
46 if (!IsUninstall())
47 {
48 GetInstallManifest().GetTaggedFileList(InstallTags, TaggedFiles);
49 }
50 }
51
52 bool IsInstall() const { return InstallerAction.IsInstall(); }
53 bool IsUpdate() const { return InstallerAction.IsUpdate(); }
54 bool IsRepair() const { return InstallerAction.IsRepair(); }
55 bool IsUninstall() const { return InstallerAction.IsUninstall(); }
56 const TSet<FString>& GetInstallTags() const { return InstallTags; }
57 const TSet<FString>& GetTaggedFiles() const { return TaggedFiles; }
58 const FString& GetInstallSubdirectory() const { return InstallerAction.GetInstallSubdirectory(); }
59 const FString& GetCloudSubdirectory() const { return InstallerAction.GetCloudSubdirectory(); }
60 const FBuildPatchAppManifest& GetCurrentManifest() const { return *CurrentManifest; }
61 const FBuildPatchAppManifest& GetInstallManifest() const { return *InstallManifest; }
62 const FBuildPatchAppManifest* TryGetCurrentManifest() const { return CurrentManifest.Get(); }
63 const FBuildPatchAppManifest* TryGetInstallManifest() const { return InstallManifest.Get(); }
64 const FBuildPatchAppManifest& GetCurrentOrInstallManifest() const { return *(CurrentManifest.IsValid() ? CurrentManifest : InstallManifest); }
65 const FBuildPatchAppManifest& GetInstallOrCurrentManifest() const { return *(InstallManifest.IsValid() ? InstallManifest : CurrentManifest); }
66 const FBuildPatchAppManifestRef GetSharedCurrentManifest() const { return CurrentManifest.ToSharedRef(); }
67 const FBuildPatchAppManifestRef GetSharedInstallManifest() const { return InstallManifest.ToSharedRef(); }
68 const FBuildPatchAppManifestPtr TryGetSharedCurrentManifest() const { return CurrentManifest; }
69 const FBuildPatchAppManifestPtr TryGetSharedInstallManifest() const { return InstallManifest; }
70 const FBuildPatchAppManifestRef GetSharedCurrentOrInstallManifest() const { return (CurrentManifest.IsValid() ? CurrentManifest : InstallManifest).ToSharedRef(); }
71 const FBuildPatchAppManifestRef GetSharedInstallOrCurrentManifest() const { return (InstallManifest.IsValid() ? InstallManifest : CurrentManifest).ToSharedRef(); }
72
73 void SetDeltaManifest(const FBuildPatchAppManifestRef& DeltaManifest) { if (IsUpdate()) { InstallManifest = DeltaManifest; } }
75
76 private:
77 const FInstallerAction InstallerAction;
78 FBuildPatchAppManifestPtr CurrentManifest;
79 FBuildPatchAppManifestPtr InstallManifest;
80 TSet<FString> InstallTags;
81 TSet<FString> TaggedFiles;
82 };
83
85 {
86 public:
87 virtual ~IBuildManifestSet() {}
88
89 // Manifest info
91 virtual void GetInstallResumeIdsForFile(const FString& BuildFile, TSet<FString>& ResumeIds, bool bIncludeLegacy) const = 0;
92
93 // Data enumeration
94 virtual void GetReferencedChunks(TSet<FGuid>& DataGuids) const = 0;
95 virtual uint64 GetDownloadSize(const FGuid& DataGuid) const = 0;
96 virtual uint64 GetDownloadSize(const TSet<FGuid>& DataGuids) const = 0;
97 virtual FChunkInfo const* GetChunkInfo(const FGuid& DataGuid) const = 0;
98 virtual bool GetChunkShaHash(const FGuid& ChunkGuid, FSHAHash& OutHash) const = 0;
99 virtual FString GetDataFilename(const FGuid& DataGuid) const = 0;
100
101 // File enumeration
102 virtual int32 GetNumExpectedFiles() const = 0;
103 virtual void GetExpectedFiles(TSet<FString>& Filenames) const = 0;
104 virtual void GetOutdatedFiles(const FString& InstallDirectory, TSet<FString>& OutdatedFiles) const = 0;
106 virtual const FFileManifest* GetCurrentFileManifest(const FString& BuildFile) const = 0;
107 virtual const FFileManifest* GetNewFileManifest(const FString& BuildFile) const = 0;
112 virtual bool IsFileRepairAction(const FString& Filename) const = 0;
113
114 // Misc actions
115 virtual bool ContainsUpdate() const = 0;
116 virtual bool IsRepairOnly() const = 0;
117 virtual bool HasFileAttributes() const = 0;
118 };
119
121 {
122 public:
124 };
125}
#define TEXT(x)
Definition Platform.h:1272
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
UE_FORCEINLINE_HINT TSharedPtr< CastToType, Mode > StaticCastSharedPtr(TSharedPtr< CastFromType, Mode > const &InSharedPtr)
Definition SharedPointer.h:1886
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition IBuildManifestSet.h:121
Definition IBuildManifestSet.h:85
virtual void GetFilesTaggedForRepair(TSet< FString > &Filenames) const =0
virtual bool IsFileRepairAction(const FString &Filename) const =0
virtual const FFileManifest * GetNewFileManifest(const FString &BuildFile) const =0
virtual void GetExpectedFiles(TSet< FString > &Filenames) const =0
virtual void GetRemovableFiles(TSet< FString > &FilesToRemove) const =0
virtual bool ContainsUpdate() const =0
virtual ~IBuildManifestSet()
Definition IBuildManifestSet.h:87
virtual FString GetDataFilename(const FGuid &DataGuid) const =0
virtual uint64 GetDownloadSize(const TSet< FGuid > &DataGuids) const =0
virtual bool IsRepairOnly() const =0
virtual uint64 GetDownloadSize(const FGuid &DataGuid) const =0
virtual void GetReferencedChunks(TSet< FGuid > &DataGuids) const =0
virtual void GetInstallResumeIds(TSet< FString > &ResumeIds, bool bIncludeLegacy) const =0
virtual uint64 GetTotalNewFileSize(const TSet< FString > &Filenames) const =0
virtual uint64 GetTotalNewFileSize(const TArray< FString > &Filenames) const =0
virtual void GetOutdatedFiles(const FString &InstallDirectory, TSet< FString > &OutdatedFiles) const =0
virtual int32 GetNumExpectedFiles() const =0
virtual void GetInstallResumeIdsForFile(const FString &BuildFile, TSet< FString > &ResumeIds, bool bIncludeLegacy) const =0
virtual bool HasFileAttributes() const =0
virtual bool GetChunkShaHash(const FGuid &ChunkGuid, FSHAHash &OutHash) const =0
virtual FChunkInfo const * GetChunkInfo(const FGuid &DataGuid) const =0
virtual const FFileManifest * GetCurrentFileManifest(const FString &BuildFile) const =0
virtual void GetPreReqInfo(TArray< FPreReqInfo > &PreReqInfo) const =0
Definition BuildPatchManifest.h:64
virtual void GetTaggedFileList(const TSet< FString > &Tags, TArray< FString > &TaggedFiles) const
Definition BuildPatchManifest.cpp:980
virtual TSet< FString > GetFileTagList() const override
Definition BuildPatchManifest.cpp:968
Definition SecureHash.h:226
Definition Array.h:670
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
TSharedRef< ObjectType, Mode > ToSharedRef() const &
Definition SharedPointer.h:1028
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition BuildPatchFileConstructor.h:28
Definition IBuildManifestSet.h:29
const FBuildPatchAppManifestRef GetSharedCurrentOrInstallManifest() const
Definition IBuildManifestSet.h:70
bool IsRepair() const
Definition IBuildManifestSet.h:54
void SetTaggedFiles(TSet< FString > OverrideTaggedFiles)
Definition IBuildManifestSet.h:74
const FBuildPatchAppManifest & GetCurrentOrInstallManifest() const
Definition IBuildManifestSet.h:64
const FBuildPatchAppManifestPtr TryGetSharedInstallManifest() const
Definition IBuildManifestSet.h:69
const FBuildPatchAppManifestRef GetSharedInstallOrCurrentManifest() const
Definition IBuildManifestSet.h:71
FBuildPatchInstallerAction(const FInstallerAction &InInstallerAction)
Definition IBuildManifestSet.h:31
void SetDeltaManifest(const FBuildPatchAppManifestRef &DeltaManifest)
Definition IBuildManifestSet.h:73
const FBuildPatchAppManifest * TryGetInstallManifest() const
Definition IBuildManifestSet.h:63
const FString & GetCloudSubdirectory() const
Definition IBuildManifestSet.h:59
const FBuildPatchAppManifest * TryGetCurrentManifest() const
Definition IBuildManifestSet.h:62
const FBuildPatchAppManifest & GetInstallManifest() const
Definition IBuildManifestSet.h:61
const TSet< FString > & GetInstallTags() const
Definition IBuildManifestSet.h:56
const FBuildPatchAppManifest & GetInstallOrCurrentManifest() const
Definition IBuildManifestSet.h:65
const FBuildPatchAppManifestPtr TryGetSharedCurrentManifest() const
Definition IBuildManifestSet.h:68
bool IsUninstall() const
Definition IBuildManifestSet.h:55
const FBuildPatchAppManifestRef GetSharedCurrentManifest() const
Definition IBuildManifestSet.h:66
const FBuildPatchAppManifest & GetCurrentManifest() const
Definition IBuildManifestSet.h:60
const FBuildPatchAppManifestRef GetSharedInstallManifest() const
Definition IBuildManifestSet.h:67
bool IsInstall() const
Definition IBuildManifestSet.h:52
const FString & GetInstallSubdirectory() const
Definition IBuildManifestSet.h:58
bool IsUpdate() const
Definition IBuildManifestSet.h:53
const TSet< FString > & GetTaggedFiles() const
Definition IBuildManifestSet.h:57
Definition ChunkData.h:240
Definition ManifestData.h:140
Definition BuildPatchSettings.h:47
BUILDPATCHSERVICES_API const TSet< FString > & GetInstallTags() const
Definition BuildPatchSettings.cpp:117
BUILDPATCHSERVICES_API bool IsUninstall() const
Definition BuildPatchSettings.cpp:112
BUILDPATCHSERVICES_API bool IsRepair() const
Definition BuildPatchSettings.cpp:107
BUILDPATCHSERVICES_API const FString & GetInstallSubdirectory() const
Definition BuildPatchSettings.cpp:122
BUILDPATCHSERVICES_API const FString & GetCloudSubdirectory() const
Definition BuildPatchSettings.cpp:127
BUILDPATCHSERVICES_API bool IsUpdate() const
Definition BuildPatchSettings.cpp:102
BUILDPATCHSERVICES_API bool IsInstall() const
Definition BuildPatchSettings.cpp:97
Definition IBuildManifestSet.h:13
TSet< FString > IdSet
Definition IBuildManifestSet.h:14
bool bIsRepair
Definition IBuildManifestSet.h:20
FString Name
Definition IBuildManifestSet.h:15
FString AppName
Definition IBuildManifestSet.h:18
FString Path
Definition IBuildManifestSet.h:16
FString Args
Definition IBuildManifestSet.h:17
FString VersionString
Definition IBuildManifestSet.h:19
Definition Guid.h:109