UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BuildPatchServicesModule.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"
9#include "Containers/Ticker.h"
10
12
16enum
17{
18 // Sizes
19 FileBufferSize = 1024*1024*4, // When reading from files, how much to buffer
20 StreamBufferSize = FileBufferSize*4, // When reading from build data stream, how much to buffer.
21};
22
29{
30public:
31
32 // IModuleInterface interface begin.
33 virtual void StartupModule() override;
34 virtual void ShutdownModule() override;
35 // IModuleInterface interface end.
36
37 // IBuildPatchServicesModule interface begin.
39 virtual IBuildInstallerSharedContextRef CreateBuildInstallerSharedContext(const TCHAR* DebugName) const override;
40 virtual BuildPatchServices::IBuildStatisticsRef CreateBuildStatistics(const IBuildInstallerRef& Installer) const override;
41 virtual BuildPatchServices::IPatchDataEnumerationRef CreatePatchDataEnumeration(BuildPatchServices::FPatchDataEnumerationConfiguration Configuration) const override;
42 virtual IBuildManifestPtr LoadManifestFromFile(const FString& Filename) override;
44 virtual bool SaveManifestToFile(const FString& Filename, IBuildManifestRef Manifest) override;
45 virtual TSet<FString> GetInstalledPrereqIds() const override;
46 virtual const TArray<IBuildInstallerRef>& GetInstallers() const override;
47 virtual void SetStagingDirectory(const FString& StagingDir) override;
48 virtual void SetCloudDirectory(FString CloudDir) override;
49 virtual void SetCloudDirectories(TArray<FString> CloudDirs) override;
50 virtual void SetBackupDirectory(const FString& BackupDir) override;
51 virtual void SetAnalyticsProvider(TSharedPtr< IAnalyticsProvider > AnalyticsProvider) override;
53 virtual bool UnregisterAppInstallation(const FString AppInstallDirectory) override;
54 virtual void CancelAllInstallers(bool WaitForThreads) override;
55 virtual bool ChunkBuildDirectory(const BuildPatchServices::FChunkBuildConfiguration& Configuration) override;
56 virtual bool OptimiseChunkDelta(const BuildPatchServices::FChunkDeltaOptimiserConfiguration& Configuration) override;
57 virtual bool CompactifyCloudDirectory(const BuildPatchServices::FCompactifyConfiguration& Configuration) override;
58 virtual bool EnumeratePatchData(const BuildPatchServices::FPatchDataEnumerationConfiguration& Configuration) override;
59 virtual bool VerifyChunkData(const FString& SearchPath, const FString& OutputFile) override;
60 virtual bool PackageChunkData(const BuildPatchServices::FPackageChunksConfiguration& Configuration) override;
61 virtual bool MergeManifests(const FString& ManifestFilePathA, const FString& ManifestFilePathB, const FString& ManifestFilePathC, const FString& NewVersionString, const FString& SelectionDetailFilePath) override;
62 virtual bool DiffManifests(const BuildPatchServices::FDiffManifestsConfiguration& Configuration) override;
63 virtual FSimpleEvent& OnStartBuildInstall() override;
64 virtual IBuildManifestPtr MakeManifestFromJSON(const FString& ManifestJSON) override;
65 // IBuildPatchServicesModule interface end.
66
71 static const FString& GetStagingDirectory();
72
78 static FString GetCloudDirectory(int32 CloudIdx = 0);
79
85
90 static const FString& GetBackupDirectory();
91
92private:
98 bool Tick(float Delta);
99
103 void PreExit();
104
108 void FixupLegacyConfig();
109
113 void NormalizeCloudPaths(TArray<FString>& InOutCloudPaths);
114
115private:
116 // The analytics provider interface
117 static TSharedPtr<IAnalyticsProvider> Analytics;
118
119 // Holds the cloud directories where chunks should belong
120 static TArray<FString> CloudDirectories;
121
122 // Holds the staging directory where we can perform any temporary work
123 static FString StagingDirectory;
124
125 // Holds the backup directory where we can move files that will be clobbered by repair or patch
126 static FString BackupDirectory;
127
128 // Holds the filename for local machine config. This is instead of shipped or user config, to track machine installation config.
129 FString LocalMachineConfigFile;
130
131 // A flag specifying whether prerequisites install should be skipped
132 bool bForceSkipPrereqs;
133
134 // Array of running installers
135 TArray<FBuildPatchInstallerRef> BuildPatchInstallers;
136
137 // Array of running installers as exposable interface refs
138 TArray<IBuildInstallerRef> BuildPatchInstallerInterfaces;
139
140 // Holds available installations used for recycling install data
142
143 // Handle to the registered Tick delegate
144 FTSTicker::FDelegateHandle TickDelegateHandle;
145
146 // Delegate to give to installers so we know when they have been started.
147 FBuildPatchInstallerDelegate InstallerStartDelegate;
148
149 // Event broadcast upon a new build install
150 FSimpleEvent OnStartBuildInstallEvent;
151};
@ FileBufferSize
Definition BuildPatchServicesModule.h:19
@ StreamBufferSize
Definition BuildPatchServicesModule.h:20
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
OnComplete(MoveTemp(Response))
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
Definition BuildPatchServicesModule.h:29
virtual IBuildManifestPtr LoadManifestFromFile(const FString &Filename) override
Definition BuildPatchServicesModule.cpp:145
static const FString & GetBackupDirectory()
Definition BuildPatchServicesModule.cpp:467
static TArray< FString > GetCloudDirectories()
Definition BuildPatchServicesModule.cpp:452
virtual IBuildInstallerSharedContextRef CreateBuildInstallerSharedContext(const TCHAR *DebugName) const override
Definition BuildPatchServicesModule.cpp:128
virtual IBuildManifestPtr MakeManifestFromData(const TArray< uint8 > &ManifestData) override
Definition BuildPatchServicesModule.cpp:158
virtual TSet< FString > GetInstalledPrereqIds() const override
Definition BuildPatchServicesModule.cpp:185
virtual void SetCloudDirectories(TArray< FString > CloudDirs) override
Definition BuildPatchServicesModule.cpp:294
virtual void RegisterAppInstallation(IBuildManifestRef AppManifest, const FString AppInstallDirectory) override
Definition BuildPatchServicesModule.cpp:329
virtual bool UnregisterAppInstallation(const FString AppInstallDirectory) override
Definition BuildPatchServicesModule.cpp:337
virtual void SetStagingDirectory(const FString &StagingDir) override
Definition BuildPatchServicesModule.cpp:282
static FString GetCloudDirectory(int32 CloudIdx=0)
Definition BuildPatchServicesModule.cpp:437
virtual bool MergeManifests(const FString &ManifestFilePathA, const FString &ManifestFilePathB, const FString &ManifestFilePathC, const FString &NewVersionString, const FString &SelectionDetailFilePath) override
Definition BuildPatchServicesModule.cpp:265
virtual bool OptimiseChunkDelta(const BuildPatchServices::FChunkDeltaOptimiserConfiguration &Configuration) override
Definition BuildPatchServicesModule.cpp:232
virtual void CancelAllInstallers(bool WaitForThreads) override
Definition BuildPatchServicesModule.cpp:348
virtual IBuildManifestPtr MakeManifestFromJSON(const FString &ManifestJSON) override
Definition BuildPatchServicesModule.cpp:169
virtual bool CompactifyCloudDirectory(const BuildPatchServices::FCompactifyConfiguration &Configuration) override
Definition BuildPatchServicesModule.cpp:239
virtual void SetAnalyticsProvider(TSharedPtr< IAnalyticsProvider > AnalyticsProvider) override
Definition BuildPatchServicesModule.cpp:324
virtual void SetCloudDirectory(FString CloudDir) override
Definition BuildPatchServicesModule.cpp:287
virtual bool DiffManifests(const BuildPatchServices::FDiffManifestsConfiguration &Configuration) override
Definition BuildPatchServicesModule.cpp:270
virtual void ShutdownModule() override
Definition BuildPatchServicesModule.cpp:104
virtual BuildPatchServices::IPatchDataEnumerationRef CreatePatchDataEnumeration(BuildPatchServices::FPatchDataEnumerationConfiguration Configuration) const override
Definition BuildPatchServicesModule.cpp:139
virtual BuildPatchServices::IBuildStatisticsRef CreateBuildStatistics(const IBuildInstallerRef &Installer) const override
Definition BuildPatchServicesModule.cpp:133
virtual bool PackageChunkData(const BuildPatchServices::FPackageChunksConfiguration &Configuration) override
Definition BuildPatchServicesModule.cpp:258
virtual FSimpleEvent & OnStartBuildInstall() override
Definition BuildPatchServicesModule.cpp:277
virtual const TArray< IBuildInstallerRef > & GetInstallers() const override
Definition BuildPatchServicesModule.cpp:192
virtual bool SaveManifestToFile(const FString &Filename, IBuildManifestRef Manifest) override
Definition BuildPatchServicesModule.cpp:180
static const FString & GetStagingDirectory()
Definition BuildPatchServicesModule.cpp:427
virtual void SetBackupDirectory(const FString &BackupDir) override
Definition BuildPatchServicesModule.cpp:319
virtual bool VerifyChunkData(const FString &SearchPath, const FString &OutputFile) override
Definition BuildPatchServicesModule.cpp:253
virtual void StartupModule() override
Definition BuildPatchServicesModule.cpp:42
virtual IBuildInstallerRef CreateBuildInstaller(BuildPatchServices::FBuildInstallerConfiguration Configuration, FBuildPatchInstallerDelegate OnComplete) const override
Definition BuildPatchServicesModule.cpp:117
virtual bool EnumeratePatchData(const BuildPatchServices::FPatchDataEnumerationConfiguration &Configuration) override
Definition BuildPatchServicesModule.cpp:246
virtual bool ChunkBuildDirectory(const BuildPatchServices::FChunkBuildConfiguration &Configuration) override
Definition BuildPatchServicesModule.cpp:227
Definition IAnalyticsProvider.h:52
Definition IBuildPatchServicesModule.h:33
Definition Array.h:670
Definition SharedPointer.h:153
Definition BuildPatchSettings.h:253
Definition BuildPatchSettings.h:344
Definition BuildPatchSettings.h:491
Definition BuildPatchSettings.h:451
Definition BuildPatchSettings.h:513