Files
UnrealEngineUWP/Engine/Source/Runtime/PreLoadScreen/Private/BuildPatchServicesPreLoadManager.cpp

122 lines
4.4 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
#include "BuildPatchServicesPreLoadManager.h"
#include "Modules/ModuleManager.h"
#define LOCTEXT_NAMESPACE "PreLoadManager.BuildPatchServices"
FBuildPatchServicesPreLoadManagerBase::FBuildPatchServicesPreLoadManagerBase()
: bPatchingStarted(false)
, bPatchingFinished(false)
{
}
void FBuildPatchServicesPreLoadManagerBase::Init()
{
bPatchingStarted = false;
bPatchingFinished = false;
ContentBuildInstaller.Reset();
BuildPatchServicesModule = &FModuleManager::LoadModuleChecked<IBuildPatchServicesModule>(TEXT("BuildPatchServices"));
}
bool FBuildPatchServicesPreLoadManagerBase::IsDone() const
{
return bPatchingFinished;
}
Copying //UE4/Portal-Staging to //UE4/Main (Source: //Portal/Main/Engine @ 8661229) Change 8553543 by Wes.Fudala We now set a fixed value of 24 to CEF screenInfo colorDepth when off screen rendering is enabled. Change 8235770 by Wes.Fudala Fix for CEFJsScripting memory stomp and memory alignment errors called out by the stomp memory allocator when running with -stompmalloc on the commandline. Change 8065597 by Leigh.Swift BuildPatchServices: Improving ChunkBuildDirectory behaviour when dealing with empty build or builds only containing empty files. This is now fully supported as part of the generation flow rather than an early detected edge case. Change 7641628 by Leigh.Swift BuildPatchServices: Tweaks to serialisation safety. BuildPatchServices: DiskChunkStore fix for crash when chunkdump serialisation fails due to disk space. Change 7436869 by Leigh.Swift BuildPatchServices: Fix regression in BPT package chunks for cloud save improvements now require message pumping. Change 7326553 by Wes.Fudala BuildPatchServices: Attempt to restore functionality of the -SkipBuildPatchPrereq commandline. This stopped functioning in CL# 6655502 with the BPS DLC related refactors. The issue was reported by a number of users that were relying on this commandline as a last resort workaround for prereq install issues. Change 7323945 by Leigh.Swift BuildPatchServices: BuildPatchTool: Install time coefficient values exposed by DiffManifests. This gives an indicative install duration. The time is not necessarily accurate, but the simulation is a constant and so the value is highly comparable between different builds. Change 7310352 by Antony.Carter BuildPatchServices: Adding support for overriding http path for chunk requests. This allows the ability to support signed urls when downloading patch data. Change 7095282 by Leigh.Swift BuildPatchServices: Fix regression with manifests that have no core files. Change 7092198 by leigh.swift BuildPatchServices: Reuse existing code from FBuildPatchAppManifest::GetChunkShaHash in FBuildPatchManifestSet::GetChunkShaHash. This fixes an issue where older manifest files that did not ship with chunk sha values in them, can skip sha validation of chunks like pre-DLC launcher did. Change 6959115 by Wes.Fudala Added functionality that will optionally expose embedded browser console logs to the client. Change 6835841 by Leigh.Swift BuildPatchServices: Rearranging manifest save logic to avoid unnecessary seeking forwards, which avoids an assert when undetected write failures occur. Change 6684994 by Leigh.Swift BuildPatchServices: Don't clean empty directories if staging only. Change 6655502 by Mike.Erickson, Leigh.Swift, Wes.Fudala BuildPatchServices: Restructuring how installers are configured and make use of manifest files in order to combine multiple actions on an installation directory into one installer. This resembles a feature set for a better DLC installation experience. Change 6404031 by Richard.Fawcett BuildPatchTool: Only append ".manifest" to output filename if output filename has been specified on the command line. This was causing a manifest file called literally ".manifest" to be output to the clouddir if -OutputFilename was not specified. Change 6077240 by Wes.Fudala Execution of browser resource load complete delegate now happens on the main thread. Change 6076171 by Leigh.Swift BuildPatchTool: PatchGeneration: ChunkDeltaOptimise: PackageChunks: Improved corrupt output protection against ill timed taskkill, by serialising to temp filename, and then rename on success. BuildPatchTool: PatchGeneration: Manifest file extension added if not provided, fixing an oversight and inconsistency with other mode behaviours. BuildPatchTool: Compactify: Only warn when failing to get a file size, if the file still exists. Otherwise log instead. Change 6049003 by Leigh.Swift BuildPatchServices: Adding ProcessRequiredDiskSpace to Launcher.Install.Stats which represents how much disk space the install/update process needed to complete. BuildPatchServices: Adding ProcessAvailableDiskSpace to Launcher.Install.Stats which represents how much disk space was available at the time of checking required disk space. Change 5915157 by Leigh.Swift BuildPatchTool: Adding a statistic to diffmanifests for temporary disk space requirement to apply the patch. Change 5934838 by Leigh.Swift BuildPatchTool: PackageChunks: Adding support to provide a tagset for the previous build manifest when producing chunkdbs. This allows expanding the chunks saved out to cover tagsets not installed in the previous build. Change 5838666 by wes.fudala Browser can now bubble up the state of completed web resource loads. Change 5689493 by Leigh.Swift Adding new x86 and x64 MS VC141 CRT redist, version 14.16.27012 Change 5689462 by Leigh.Swift Fixing process handle leaks on windows. Core was leaking for getting an application name. Change 5500917 by Leigh.Swift BuildPatchTool: Adding new arg DiffAbortThreshold to ChunkDeltaOptimise mode which allows skipping of the operation if the original delta is so large that it would take too long to process, and likely have little benefit. BuildPatchTool: Switching some Log output to use Display so that it will appear in EC and CMD windows. Change 5337482 by Leigh.Swift BuildPatchTool: Fix for DiffManifests mode not accurately representing delta size for tagged install sets. Change 5261246 by Leigh.Swift BuildPatchServices: Fix for file download needing to mock response codes for higher layer statistics code which tracks data sizes and speeds. This is a regression from previous change to correct download failure vs corruption statistics. Change 5224725 by Leigh.Swift BuildPatchServices: Fix for delta download of more than 0 bytes when no update is necessary. BuildPatchServices: Skip requesting delta metafile if no file changes are actually required for a patch. BuildPatchTool: Reduce unnecessary data produced by BPT ChunkDeltaOptimise mode. Change 5010941 by Mike.Erickson BuildPatchServices: Add download scaling based on average speed per request, maximum count, and download health. Change 5010845 by Wes.Fudala BuildPatchServices: IDownload refactored to have specific request and response success functions, to make it clearer that a successful request does not mean the response was also good. BuildPatchServices: Fixed issues with download failures reporting as corruptions. Change 5000643 by Wes.Hunt Remove HttpServiceTracker from UE4. Change 4884381 by Leigh.Swift BuildPatchTool: Fix for Package Chunks mode hanging when no chunks were required. Change 4848675 by Justin.Sargent, Leigh.Swift Speculative fixes for graphics device lost related crash, by adding additional d3d api result checks. Improved logging for graphics device lost handling. Improved logging for tracking down common font loading failure resulting in an ensure. Change 4831134 by Leigh.Swift BuildPatchTool: Fix for crash in patchgeneration when fast-forward path replays no match. Change 4801714 by Wes.Fudala Fix for CEF issue encountered when building using Mac Mojave + XCode10. Change 4719149 by Leigh.Swift BuildPatchTool: PatchGeneration mode cyclic data optimisation, reduces SHA calculation requirement counts for cyclic data. BuildPatchTool: PatchGeneration mode fix for a bug causing non-optimal match insertion idx searching when there are 10k+ matches per scanner. Change 4680963 by Leigh.Swift BuildPatchTool: ChunkDeltaOptimise mode is now FeatureLevel upgrade / downgrade aware. Change 4680947 by Leigh.Swift BuildPatchTool: Compactify speed improvements for massive network cloud directories. Change 4656991 by Leigh.Swift BuildPatchServices: Make sure chunk writer robustly discovers if a chunk fails to save out. Change 4647815 by Leigh.Swift Upping the minimum wait time for UdpMessageBeacon thread so that it will not always wait 0ms when network sends are failing, reducing disconnect CPU usage. Adding configurable tick rate logic to XmppConnectionJingle thread. It will now default to 100Hz max. Change 4627355 by Michael.Trepka Fixed a problem with CEF being unable to find locale pak files on Mac for certain language/region combinations Change 4620800 by Leigh.Swift Fix for CEF crash when disabling a web window that has not yet got a parent window. There's no need to worry about focus in this case. Change 4590207 by Leigh.Swift BuildPatchTool: PackageChunks mode now supports FeatureLevel arg Change 4590103 by leigh.swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4590089 by Leigh.Swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4341076 by Leigh.Swift BuildPatchServices: Making FBuildPatchAppManifest::GetRemovableFiles more robust to handle directories with or without trailing slash. Change 4331754 by Leigh.Swift BuildPatchTool: Added support for selecting ChunkWindowSize when generating patches. BuildPatchTool: Added support for providing the FeatureLevel command-line argument to indicate the data version that should be saved out by patch generation. This warns about defaulting to LatestJson if not provided. BuildPatchTool: Added support for generating patches with recognition for any chunks with any ChunkWindowSize found in the provided CloudDir. BuildPatchTool: Added command-line -IgnoreOtherWindowSizes param which if provided, the generation code will only accept chunk matches that are the same as ChunkWindowSize. BuildPatchServices: Fixes for supporting installations that use any ChunkWindowSize. BuildPatchServices: New manifest file format to reduce file size, this is now raw compressed binary data. #lockdown Nick.Penwarden #rb none [CL 8675597 by Leigh Swift in Main branch]
2019-09-13 13:24:23 -04:00
void FBuildPatchServicesPreLoadManagerBase::StartBuildPatchServices(BuildPatchServices::FBuildInstallerConfiguration Settings)
{
Copying //UE4/Portal-Staging to //UE4/Main (Source: //Portal/Main/Engine @ 8661229) Change 8553543 by Wes.Fudala We now set a fixed value of 24 to CEF screenInfo colorDepth when off screen rendering is enabled. Change 8235770 by Wes.Fudala Fix for CEFJsScripting memory stomp and memory alignment errors called out by the stomp memory allocator when running with -stompmalloc on the commandline. Change 8065597 by Leigh.Swift BuildPatchServices: Improving ChunkBuildDirectory behaviour when dealing with empty build or builds only containing empty files. This is now fully supported as part of the generation flow rather than an early detected edge case. Change 7641628 by Leigh.Swift BuildPatchServices: Tweaks to serialisation safety. BuildPatchServices: DiskChunkStore fix for crash when chunkdump serialisation fails due to disk space. Change 7436869 by Leigh.Swift BuildPatchServices: Fix regression in BPT package chunks for cloud save improvements now require message pumping. Change 7326553 by Wes.Fudala BuildPatchServices: Attempt to restore functionality of the -SkipBuildPatchPrereq commandline. This stopped functioning in CL# 6655502 with the BPS DLC related refactors. The issue was reported by a number of users that were relying on this commandline as a last resort workaround for prereq install issues. Change 7323945 by Leigh.Swift BuildPatchServices: BuildPatchTool: Install time coefficient values exposed by DiffManifests. This gives an indicative install duration. The time is not necessarily accurate, but the simulation is a constant and so the value is highly comparable between different builds. Change 7310352 by Antony.Carter BuildPatchServices: Adding support for overriding http path for chunk requests. This allows the ability to support signed urls when downloading patch data. Change 7095282 by Leigh.Swift BuildPatchServices: Fix regression with manifests that have no core files. Change 7092198 by leigh.swift BuildPatchServices: Reuse existing code from FBuildPatchAppManifest::GetChunkShaHash in FBuildPatchManifestSet::GetChunkShaHash. This fixes an issue where older manifest files that did not ship with chunk sha values in them, can skip sha validation of chunks like pre-DLC launcher did. Change 6959115 by Wes.Fudala Added functionality that will optionally expose embedded browser console logs to the client. Change 6835841 by Leigh.Swift BuildPatchServices: Rearranging manifest save logic to avoid unnecessary seeking forwards, which avoids an assert when undetected write failures occur. Change 6684994 by Leigh.Swift BuildPatchServices: Don't clean empty directories if staging only. Change 6655502 by Mike.Erickson, Leigh.Swift, Wes.Fudala BuildPatchServices: Restructuring how installers are configured and make use of manifest files in order to combine multiple actions on an installation directory into one installer. This resembles a feature set for a better DLC installation experience. Change 6404031 by Richard.Fawcett BuildPatchTool: Only append ".manifest" to output filename if output filename has been specified on the command line. This was causing a manifest file called literally ".manifest" to be output to the clouddir if -OutputFilename was not specified. Change 6077240 by Wes.Fudala Execution of browser resource load complete delegate now happens on the main thread. Change 6076171 by Leigh.Swift BuildPatchTool: PatchGeneration: ChunkDeltaOptimise: PackageChunks: Improved corrupt output protection against ill timed taskkill, by serialising to temp filename, and then rename on success. BuildPatchTool: PatchGeneration: Manifest file extension added if not provided, fixing an oversight and inconsistency with other mode behaviours. BuildPatchTool: Compactify: Only warn when failing to get a file size, if the file still exists. Otherwise log instead. Change 6049003 by Leigh.Swift BuildPatchServices: Adding ProcessRequiredDiskSpace to Launcher.Install.Stats which represents how much disk space the install/update process needed to complete. BuildPatchServices: Adding ProcessAvailableDiskSpace to Launcher.Install.Stats which represents how much disk space was available at the time of checking required disk space. Change 5915157 by Leigh.Swift BuildPatchTool: Adding a statistic to diffmanifests for temporary disk space requirement to apply the patch. Change 5934838 by Leigh.Swift BuildPatchTool: PackageChunks: Adding support to provide a tagset for the previous build manifest when producing chunkdbs. This allows expanding the chunks saved out to cover tagsets not installed in the previous build. Change 5838666 by wes.fudala Browser can now bubble up the state of completed web resource loads. Change 5689493 by Leigh.Swift Adding new x86 and x64 MS VC141 CRT redist, version 14.16.27012 Change 5689462 by Leigh.Swift Fixing process handle leaks on windows. Core was leaking for getting an application name. Change 5500917 by Leigh.Swift BuildPatchTool: Adding new arg DiffAbortThreshold to ChunkDeltaOptimise mode which allows skipping of the operation if the original delta is so large that it would take too long to process, and likely have little benefit. BuildPatchTool: Switching some Log output to use Display so that it will appear in EC and CMD windows. Change 5337482 by Leigh.Swift BuildPatchTool: Fix for DiffManifests mode not accurately representing delta size for tagged install sets. Change 5261246 by Leigh.Swift BuildPatchServices: Fix for file download needing to mock response codes for higher layer statistics code which tracks data sizes and speeds. This is a regression from previous change to correct download failure vs corruption statistics. Change 5224725 by Leigh.Swift BuildPatchServices: Fix for delta download of more than 0 bytes when no update is necessary. BuildPatchServices: Skip requesting delta metafile if no file changes are actually required for a patch. BuildPatchTool: Reduce unnecessary data produced by BPT ChunkDeltaOptimise mode. Change 5010941 by Mike.Erickson BuildPatchServices: Add download scaling based on average speed per request, maximum count, and download health. Change 5010845 by Wes.Fudala BuildPatchServices: IDownload refactored to have specific request and response success functions, to make it clearer that a successful request does not mean the response was also good. BuildPatchServices: Fixed issues with download failures reporting as corruptions. Change 5000643 by Wes.Hunt Remove HttpServiceTracker from UE4. Change 4884381 by Leigh.Swift BuildPatchTool: Fix for Package Chunks mode hanging when no chunks were required. Change 4848675 by Justin.Sargent, Leigh.Swift Speculative fixes for graphics device lost related crash, by adding additional d3d api result checks. Improved logging for graphics device lost handling. Improved logging for tracking down common font loading failure resulting in an ensure. Change 4831134 by Leigh.Swift BuildPatchTool: Fix for crash in patchgeneration when fast-forward path replays no match. Change 4801714 by Wes.Fudala Fix for CEF issue encountered when building using Mac Mojave + XCode10. Change 4719149 by Leigh.Swift BuildPatchTool: PatchGeneration mode cyclic data optimisation, reduces SHA calculation requirement counts for cyclic data. BuildPatchTool: PatchGeneration mode fix for a bug causing non-optimal match insertion idx searching when there are 10k+ matches per scanner. Change 4680963 by Leigh.Swift BuildPatchTool: ChunkDeltaOptimise mode is now FeatureLevel upgrade / downgrade aware. Change 4680947 by Leigh.Swift BuildPatchTool: Compactify speed improvements for massive network cloud directories. Change 4656991 by Leigh.Swift BuildPatchServices: Make sure chunk writer robustly discovers if a chunk fails to save out. Change 4647815 by Leigh.Swift Upping the minimum wait time for UdpMessageBeacon thread so that it will not always wait 0ms when network sends are failing, reducing disconnect CPU usage. Adding configurable tick rate logic to XmppConnectionJingle thread. It will now default to 100Hz max. Change 4627355 by Michael.Trepka Fixed a problem with CEF being unable to find locale pak files on Mac for certain language/region combinations Change 4620800 by Leigh.Swift Fix for CEF crash when disabling a web window that has not yet got a parent window. There's no need to worry about focus in this case. Change 4590207 by Leigh.Swift BuildPatchTool: PackageChunks mode now supports FeatureLevel arg Change 4590103 by leigh.swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4590089 by Leigh.Swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4341076 by Leigh.Swift BuildPatchServices: Making FBuildPatchAppManifest::GetRemovableFiles more robust to handle directories with or without trailing slash. Change 4331754 by Leigh.Swift BuildPatchTool: Added support for selecting ChunkWindowSize when generating patches. BuildPatchTool: Added support for providing the FeatureLevel command-line argument to indicate the data version that should be saved out by patch generation. This warns about defaulting to LatestJson if not provided. BuildPatchTool: Added support for generating patches with recognition for any chunks with any ChunkWindowSize found in the provided CloudDir. BuildPatchTool: Added command-line -IgnoreOtherWindowSizes param which if provided, the generation code will only accept chunk matches that are the same as ChunkWindowSize. BuildPatchServices: Fixes for supporting installations that use any ChunkWindowSize. BuildPatchServices: New manifest file format to reduce file size, this is now raw compressed binary data. #lockdown Nick.Penwarden #rb none [CL 8675597 by Leigh Swift in Main branch]
2019-09-13 13:24:23 -04:00
bPatchingStarted = true;
Copying //UE4/Portal-Staging to //UE4/Main (Source: //Portal/Main/Engine @ 8661229) Change 8553543 by Wes.Fudala We now set a fixed value of 24 to CEF screenInfo colorDepth when off screen rendering is enabled. Change 8235770 by Wes.Fudala Fix for CEFJsScripting memory stomp and memory alignment errors called out by the stomp memory allocator when running with -stompmalloc on the commandline. Change 8065597 by Leigh.Swift BuildPatchServices: Improving ChunkBuildDirectory behaviour when dealing with empty build or builds only containing empty files. This is now fully supported as part of the generation flow rather than an early detected edge case. Change 7641628 by Leigh.Swift BuildPatchServices: Tweaks to serialisation safety. BuildPatchServices: DiskChunkStore fix for crash when chunkdump serialisation fails due to disk space. Change 7436869 by Leigh.Swift BuildPatchServices: Fix regression in BPT package chunks for cloud save improvements now require message pumping. Change 7326553 by Wes.Fudala BuildPatchServices: Attempt to restore functionality of the -SkipBuildPatchPrereq commandline. This stopped functioning in CL# 6655502 with the BPS DLC related refactors. The issue was reported by a number of users that were relying on this commandline as a last resort workaround for prereq install issues. Change 7323945 by Leigh.Swift BuildPatchServices: BuildPatchTool: Install time coefficient values exposed by DiffManifests. This gives an indicative install duration. The time is not necessarily accurate, but the simulation is a constant and so the value is highly comparable between different builds. Change 7310352 by Antony.Carter BuildPatchServices: Adding support for overriding http path for chunk requests. This allows the ability to support signed urls when downloading patch data. Change 7095282 by Leigh.Swift BuildPatchServices: Fix regression with manifests that have no core files. Change 7092198 by leigh.swift BuildPatchServices: Reuse existing code from FBuildPatchAppManifest::GetChunkShaHash in FBuildPatchManifestSet::GetChunkShaHash. This fixes an issue where older manifest files that did not ship with chunk sha values in them, can skip sha validation of chunks like pre-DLC launcher did. Change 6959115 by Wes.Fudala Added functionality that will optionally expose embedded browser console logs to the client. Change 6835841 by Leigh.Swift BuildPatchServices: Rearranging manifest save logic to avoid unnecessary seeking forwards, which avoids an assert when undetected write failures occur. Change 6684994 by Leigh.Swift BuildPatchServices: Don't clean empty directories if staging only. Change 6655502 by Mike.Erickson, Leigh.Swift, Wes.Fudala BuildPatchServices: Restructuring how installers are configured and make use of manifest files in order to combine multiple actions on an installation directory into one installer. This resembles a feature set for a better DLC installation experience. Change 6404031 by Richard.Fawcett BuildPatchTool: Only append ".manifest" to output filename if output filename has been specified on the command line. This was causing a manifest file called literally ".manifest" to be output to the clouddir if -OutputFilename was not specified. Change 6077240 by Wes.Fudala Execution of browser resource load complete delegate now happens on the main thread. Change 6076171 by Leigh.Swift BuildPatchTool: PatchGeneration: ChunkDeltaOptimise: PackageChunks: Improved corrupt output protection against ill timed taskkill, by serialising to temp filename, and then rename on success. BuildPatchTool: PatchGeneration: Manifest file extension added if not provided, fixing an oversight and inconsistency with other mode behaviours. BuildPatchTool: Compactify: Only warn when failing to get a file size, if the file still exists. Otherwise log instead. Change 6049003 by Leigh.Swift BuildPatchServices: Adding ProcessRequiredDiskSpace to Launcher.Install.Stats which represents how much disk space the install/update process needed to complete. BuildPatchServices: Adding ProcessAvailableDiskSpace to Launcher.Install.Stats which represents how much disk space was available at the time of checking required disk space. Change 5915157 by Leigh.Swift BuildPatchTool: Adding a statistic to diffmanifests for temporary disk space requirement to apply the patch. Change 5934838 by Leigh.Swift BuildPatchTool: PackageChunks: Adding support to provide a tagset for the previous build manifest when producing chunkdbs. This allows expanding the chunks saved out to cover tagsets not installed in the previous build. Change 5838666 by wes.fudala Browser can now bubble up the state of completed web resource loads. Change 5689493 by Leigh.Swift Adding new x86 and x64 MS VC141 CRT redist, version 14.16.27012 Change 5689462 by Leigh.Swift Fixing process handle leaks on windows. Core was leaking for getting an application name. Change 5500917 by Leigh.Swift BuildPatchTool: Adding new arg DiffAbortThreshold to ChunkDeltaOptimise mode which allows skipping of the operation if the original delta is so large that it would take too long to process, and likely have little benefit. BuildPatchTool: Switching some Log output to use Display so that it will appear in EC and CMD windows. Change 5337482 by Leigh.Swift BuildPatchTool: Fix for DiffManifests mode not accurately representing delta size for tagged install sets. Change 5261246 by Leigh.Swift BuildPatchServices: Fix for file download needing to mock response codes for higher layer statistics code which tracks data sizes and speeds. This is a regression from previous change to correct download failure vs corruption statistics. Change 5224725 by Leigh.Swift BuildPatchServices: Fix for delta download of more than 0 bytes when no update is necessary. BuildPatchServices: Skip requesting delta metafile if no file changes are actually required for a patch. BuildPatchTool: Reduce unnecessary data produced by BPT ChunkDeltaOptimise mode. Change 5010941 by Mike.Erickson BuildPatchServices: Add download scaling based on average speed per request, maximum count, and download health. Change 5010845 by Wes.Fudala BuildPatchServices: IDownload refactored to have specific request and response success functions, to make it clearer that a successful request does not mean the response was also good. BuildPatchServices: Fixed issues with download failures reporting as corruptions. Change 5000643 by Wes.Hunt Remove HttpServiceTracker from UE4. Change 4884381 by Leigh.Swift BuildPatchTool: Fix for Package Chunks mode hanging when no chunks were required. Change 4848675 by Justin.Sargent, Leigh.Swift Speculative fixes for graphics device lost related crash, by adding additional d3d api result checks. Improved logging for graphics device lost handling. Improved logging for tracking down common font loading failure resulting in an ensure. Change 4831134 by Leigh.Swift BuildPatchTool: Fix for crash in patchgeneration when fast-forward path replays no match. Change 4801714 by Wes.Fudala Fix for CEF issue encountered when building using Mac Mojave + XCode10. Change 4719149 by Leigh.Swift BuildPatchTool: PatchGeneration mode cyclic data optimisation, reduces SHA calculation requirement counts for cyclic data. BuildPatchTool: PatchGeneration mode fix for a bug causing non-optimal match insertion idx searching when there are 10k+ matches per scanner. Change 4680963 by Leigh.Swift BuildPatchTool: ChunkDeltaOptimise mode is now FeatureLevel upgrade / downgrade aware. Change 4680947 by Leigh.Swift BuildPatchTool: Compactify speed improvements for massive network cloud directories. Change 4656991 by Leigh.Swift BuildPatchServices: Make sure chunk writer robustly discovers if a chunk fails to save out. Change 4647815 by Leigh.Swift Upping the minimum wait time for UdpMessageBeacon thread so that it will not always wait 0ms when network sends are failing, reducing disconnect CPU usage. Adding configurable tick rate logic to XmppConnectionJingle thread. It will now default to 100Hz max. Change 4627355 by Michael.Trepka Fixed a problem with CEF being unable to find locale pak files on Mac for certain language/region combinations Change 4620800 by Leigh.Swift Fix for CEF crash when disabling a web window that has not yet got a parent window. There's no need to worry about focus in this case. Change 4590207 by Leigh.Swift BuildPatchTool: PackageChunks mode now supports FeatureLevel arg Change 4590103 by leigh.swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4590089 by Leigh.Swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4341076 by Leigh.Swift BuildPatchServices: Making FBuildPatchAppManifest::GetRemovableFiles more robust to handle directories with or without trailing slash. Change 4331754 by Leigh.Swift BuildPatchTool: Added support for selecting ChunkWindowSize when generating patches. BuildPatchTool: Added support for providing the FeatureLevel command-line argument to indicate the data version that should be saved out by patch generation. This warns about defaulting to LatestJson if not provided. BuildPatchTool: Added support for generating patches with recognition for any chunks with any ChunkWindowSize found in the provided CloudDir. BuildPatchTool: Added command-line -IgnoreOtherWindowSizes param which if provided, the generation code will only accept chunk matches that are the same as ChunkWindowSize. BuildPatchServices: Fixes for supporting installations that use any ChunkWindowSize. BuildPatchServices: New manifest file format to reduce file size, this is now raw compressed binary data. #lockdown Nick.Penwarden #rb none [CL 8675597 by Leigh Swift in Main branch]
2019-09-13 13:24:23 -04:00
if (ensureAlwaysMsgf(BuildPatchServicesModule, TEXT("FBuildPatchServicesPreLoadManager not initialized before install!")))
{
// Start the installer
FBuildPatchInstallerDelegate BuildPatchInstallerDelegate = FBuildPatchInstallerDelegate::CreateRaw(this, &FBuildPatchServicesPreLoadManagerBase::OnContentBuildInstallerComplete);
ContentBuildInstaller = BuildPatchServicesModule->CreateBuildInstaller(MoveTemp(Settings), MoveTemp(BuildPatchInstallerDelegate));
ContentBuildInstaller->StartInstallation();
}
//If possible, at least try to still send the OnContentBuildInstallerComplete event if we ensured above
else
{
bPatchingFinished = true;
OnBuildPatchCompletedDelegate.Broadcast(false);
}
}
Copying //UE4/Portal-Staging to //UE4/Main (Source: //Portal/Main/Engine @ 8661229) Change 8553543 by Wes.Fudala We now set a fixed value of 24 to CEF screenInfo colorDepth when off screen rendering is enabled. Change 8235770 by Wes.Fudala Fix for CEFJsScripting memory stomp and memory alignment errors called out by the stomp memory allocator when running with -stompmalloc on the commandline. Change 8065597 by Leigh.Swift BuildPatchServices: Improving ChunkBuildDirectory behaviour when dealing with empty build or builds only containing empty files. This is now fully supported as part of the generation flow rather than an early detected edge case. Change 7641628 by Leigh.Swift BuildPatchServices: Tweaks to serialisation safety. BuildPatchServices: DiskChunkStore fix for crash when chunkdump serialisation fails due to disk space. Change 7436869 by Leigh.Swift BuildPatchServices: Fix regression in BPT package chunks for cloud save improvements now require message pumping. Change 7326553 by Wes.Fudala BuildPatchServices: Attempt to restore functionality of the -SkipBuildPatchPrereq commandline. This stopped functioning in CL# 6655502 with the BPS DLC related refactors. The issue was reported by a number of users that were relying on this commandline as a last resort workaround for prereq install issues. Change 7323945 by Leigh.Swift BuildPatchServices: BuildPatchTool: Install time coefficient values exposed by DiffManifests. This gives an indicative install duration. The time is not necessarily accurate, but the simulation is a constant and so the value is highly comparable between different builds. Change 7310352 by Antony.Carter BuildPatchServices: Adding support for overriding http path for chunk requests. This allows the ability to support signed urls when downloading patch data. Change 7095282 by Leigh.Swift BuildPatchServices: Fix regression with manifests that have no core files. Change 7092198 by leigh.swift BuildPatchServices: Reuse existing code from FBuildPatchAppManifest::GetChunkShaHash in FBuildPatchManifestSet::GetChunkShaHash. This fixes an issue where older manifest files that did not ship with chunk sha values in them, can skip sha validation of chunks like pre-DLC launcher did. Change 6959115 by Wes.Fudala Added functionality that will optionally expose embedded browser console logs to the client. Change 6835841 by Leigh.Swift BuildPatchServices: Rearranging manifest save logic to avoid unnecessary seeking forwards, which avoids an assert when undetected write failures occur. Change 6684994 by Leigh.Swift BuildPatchServices: Don't clean empty directories if staging only. Change 6655502 by Mike.Erickson, Leigh.Swift, Wes.Fudala BuildPatchServices: Restructuring how installers are configured and make use of manifest files in order to combine multiple actions on an installation directory into one installer. This resembles a feature set for a better DLC installation experience. Change 6404031 by Richard.Fawcett BuildPatchTool: Only append ".manifest" to output filename if output filename has been specified on the command line. This was causing a manifest file called literally ".manifest" to be output to the clouddir if -OutputFilename was not specified. Change 6077240 by Wes.Fudala Execution of browser resource load complete delegate now happens on the main thread. Change 6076171 by Leigh.Swift BuildPatchTool: PatchGeneration: ChunkDeltaOptimise: PackageChunks: Improved corrupt output protection against ill timed taskkill, by serialising to temp filename, and then rename on success. BuildPatchTool: PatchGeneration: Manifest file extension added if not provided, fixing an oversight and inconsistency with other mode behaviours. BuildPatchTool: Compactify: Only warn when failing to get a file size, if the file still exists. Otherwise log instead. Change 6049003 by Leigh.Swift BuildPatchServices: Adding ProcessRequiredDiskSpace to Launcher.Install.Stats which represents how much disk space the install/update process needed to complete. BuildPatchServices: Adding ProcessAvailableDiskSpace to Launcher.Install.Stats which represents how much disk space was available at the time of checking required disk space. Change 5915157 by Leigh.Swift BuildPatchTool: Adding a statistic to diffmanifests for temporary disk space requirement to apply the patch. Change 5934838 by Leigh.Swift BuildPatchTool: PackageChunks: Adding support to provide a tagset for the previous build manifest when producing chunkdbs. This allows expanding the chunks saved out to cover tagsets not installed in the previous build. Change 5838666 by wes.fudala Browser can now bubble up the state of completed web resource loads. Change 5689493 by Leigh.Swift Adding new x86 and x64 MS VC141 CRT redist, version 14.16.27012 Change 5689462 by Leigh.Swift Fixing process handle leaks on windows. Core was leaking for getting an application name. Change 5500917 by Leigh.Swift BuildPatchTool: Adding new arg DiffAbortThreshold to ChunkDeltaOptimise mode which allows skipping of the operation if the original delta is so large that it would take too long to process, and likely have little benefit. BuildPatchTool: Switching some Log output to use Display so that it will appear in EC and CMD windows. Change 5337482 by Leigh.Swift BuildPatchTool: Fix for DiffManifests mode not accurately representing delta size for tagged install sets. Change 5261246 by Leigh.Swift BuildPatchServices: Fix for file download needing to mock response codes for higher layer statistics code which tracks data sizes and speeds. This is a regression from previous change to correct download failure vs corruption statistics. Change 5224725 by Leigh.Swift BuildPatchServices: Fix for delta download of more than 0 bytes when no update is necessary. BuildPatchServices: Skip requesting delta metafile if no file changes are actually required for a patch. BuildPatchTool: Reduce unnecessary data produced by BPT ChunkDeltaOptimise mode. Change 5010941 by Mike.Erickson BuildPatchServices: Add download scaling based on average speed per request, maximum count, and download health. Change 5010845 by Wes.Fudala BuildPatchServices: IDownload refactored to have specific request and response success functions, to make it clearer that a successful request does not mean the response was also good. BuildPatchServices: Fixed issues with download failures reporting as corruptions. Change 5000643 by Wes.Hunt Remove HttpServiceTracker from UE4. Change 4884381 by Leigh.Swift BuildPatchTool: Fix for Package Chunks mode hanging when no chunks were required. Change 4848675 by Justin.Sargent, Leigh.Swift Speculative fixes for graphics device lost related crash, by adding additional d3d api result checks. Improved logging for graphics device lost handling. Improved logging for tracking down common font loading failure resulting in an ensure. Change 4831134 by Leigh.Swift BuildPatchTool: Fix for crash in patchgeneration when fast-forward path replays no match. Change 4801714 by Wes.Fudala Fix for CEF issue encountered when building using Mac Mojave + XCode10. Change 4719149 by Leigh.Swift BuildPatchTool: PatchGeneration mode cyclic data optimisation, reduces SHA calculation requirement counts for cyclic data. BuildPatchTool: PatchGeneration mode fix for a bug causing non-optimal match insertion idx searching when there are 10k+ matches per scanner. Change 4680963 by Leigh.Swift BuildPatchTool: ChunkDeltaOptimise mode is now FeatureLevel upgrade / downgrade aware. Change 4680947 by Leigh.Swift BuildPatchTool: Compactify speed improvements for massive network cloud directories. Change 4656991 by Leigh.Swift BuildPatchServices: Make sure chunk writer robustly discovers if a chunk fails to save out. Change 4647815 by Leigh.Swift Upping the minimum wait time for UdpMessageBeacon thread so that it will not always wait 0ms when network sends are failing, reducing disconnect CPU usage. Adding configurable tick rate logic to XmppConnectionJingle thread. It will now default to 100Hz max. Change 4627355 by Michael.Trepka Fixed a problem with CEF being unable to find locale pak files on Mac for certain language/region combinations Change 4620800 by Leigh.Swift Fix for CEF crash when disabling a web window that has not yet got a parent window. There's no need to worry about focus in this case. Change 4590207 by Leigh.Swift BuildPatchTool: PackageChunks mode now supports FeatureLevel arg Change 4590103 by leigh.swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4590089 by Leigh.Swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4341076 by Leigh.Swift BuildPatchServices: Making FBuildPatchAppManifest::GetRemovableFiles more robust to handle directories with or without trailing slash. Change 4331754 by Leigh.Swift BuildPatchTool: Added support for selecting ChunkWindowSize when generating patches. BuildPatchTool: Added support for providing the FeatureLevel command-line argument to indicate the data version that should be saved out by patch generation. This warns about defaulting to LatestJson if not provided. BuildPatchTool: Added support for generating patches with recognition for any chunks with any ChunkWindowSize found in the provided CloudDir. BuildPatchTool: Added command-line -IgnoreOtherWindowSizes param which if provided, the generation code will only accept chunk matches that are the same as ChunkWindowSize. BuildPatchServices: Fixes for supporting installations that use any ChunkWindowSize. BuildPatchServices: New manifest file format to reduce file size, this is now raw compressed binary data. #lockdown Nick.Penwarden #rb none [CL 8675597 by Leigh Swift in Main branch]
2019-09-13 13:24:23 -04:00
void FBuildPatchServicesPreLoadManagerBase::OnContentBuildInstallerComplete(const IBuildInstallerRef& Installer)
{
bPatchingFinished = true;
Copying //UE4/Portal-Staging to //UE4/Main (Source: //Portal/Main/Engine @ 8661229) Change 8553543 by Wes.Fudala We now set a fixed value of 24 to CEF screenInfo colorDepth when off screen rendering is enabled. Change 8235770 by Wes.Fudala Fix for CEFJsScripting memory stomp and memory alignment errors called out by the stomp memory allocator when running with -stompmalloc on the commandline. Change 8065597 by Leigh.Swift BuildPatchServices: Improving ChunkBuildDirectory behaviour when dealing with empty build or builds only containing empty files. This is now fully supported as part of the generation flow rather than an early detected edge case. Change 7641628 by Leigh.Swift BuildPatchServices: Tweaks to serialisation safety. BuildPatchServices: DiskChunkStore fix for crash when chunkdump serialisation fails due to disk space. Change 7436869 by Leigh.Swift BuildPatchServices: Fix regression in BPT package chunks for cloud save improvements now require message pumping. Change 7326553 by Wes.Fudala BuildPatchServices: Attempt to restore functionality of the -SkipBuildPatchPrereq commandline. This stopped functioning in CL# 6655502 with the BPS DLC related refactors. The issue was reported by a number of users that were relying on this commandline as a last resort workaround for prereq install issues. Change 7323945 by Leigh.Swift BuildPatchServices: BuildPatchTool: Install time coefficient values exposed by DiffManifests. This gives an indicative install duration. The time is not necessarily accurate, but the simulation is a constant and so the value is highly comparable between different builds. Change 7310352 by Antony.Carter BuildPatchServices: Adding support for overriding http path for chunk requests. This allows the ability to support signed urls when downloading patch data. Change 7095282 by Leigh.Swift BuildPatchServices: Fix regression with manifests that have no core files. Change 7092198 by leigh.swift BuildPatchServices: Reuse existing code from FBuildPatchAppManifest::GetChunkShaHash in FBuildPatchManifestSet::GetChunkShaHash. This fixes an issue where older manifest files that did not ship with chunk sha values in them, can skip sha validation of chunks like pre-DLC launcher did. Change 6959115 by Wes.Fudala Added functionality that will optionally expose embedded browser console logs to the client. Change 6835841 by Leigh.Swift BuildPatchServices: Rearranging manifest save logic to avoid unnecessary seeking forwards, which avoids an assert when undetected write failures occur. Change 6684994 by Leigh.Swift BuildPatchServices: Don't clean empty directories if staging only. Change 6655502 by Mike.Erickson, Leigh.Swift, Wes.Fudala BuildPatchServices: Restructuring how installers are configured and make use of manifest files in order to combine multiple actions on an installation directory into one installer. This resembles a feature set for a better DLC installation experience. Change 6404031 by Richard.Fawcett BuildPatchTool: Only append ".manifest" to output filename if output filename has been specified on the command line. This was causing a manifest file called literally ".manifest" to be output to the clouddir if -OutputFilename was not specified. Change 6077240 by Wes.Fudala Execution of browser resource load complete delegate now happens on the main thread. Change 6076171 by Leigh.Swift BuildPatchTool: PatchGeneration: ChunkDeltaOptimise: PackageChunks: Improved corrupt output protection against ill timed taskkill, by serialising to temp filename, and then rename on success. BuildPatchTool: PatchGeneration: Manifest file extension added if not provided, fixing an oversight and inconsistency with other mode behaviours. BuildPatchTool: Compactify: Only warn when failing to get a file size, if the file still exists. Otherwise log instead. Change 6049003 by Leigh.Swift BuildPatchServices: Adding ProcessRequiredDiskSpace to Launcher.Install.Stats which represents how much disk space the install/update process needed to complete. BuildPatchServices: Adding ProcessAvailableDiskSpace to Launcher.Install.Stats which represents how much disk space was available at the time of checking required disk space. Change 5915157 by Leigh.Swift BuildPatchTool: Adding a statistic to diffmanifests for temporary disk space requirement to apply the patch. Change 5934838 by Leigh.Swift BuildPatchTool: PackageChunks: Adding support to provide a tagset for the previous build manifest when producing chunkdbs. This allows expanding the chunks saved out to cover tagsets not installed in the previous build. Change 5838666 by wes.fudala Browser can now bubble up the state of completed web resource loads. Change 5689493 by Leigh.Swift Adding new x86 and x64 MS VC141 CRT redist, version 14.16.27012 Change 5689462 by Leigh.Swift Fixing process handle leaks on windows. Core was leaking for getting an application name. Change 5500917 by Leigh.Swift BuildPatchTool: Adding new arg DiffAbortThreshold to ChunkDeltaOptimise mode which allows skipping of the operation if the original delta is so large that it would take too long to process, and likely have little benefit. BuildPatchTool: Switching some Log output to use Display so that it will appear in EC and CMD windows. Change 5337482 by Leigh.Swift BuildPatchTool: Fix for DiffManifests mode not accurately representing delta size for tagged install sets. Change 5261246 by Leigh.Swift BuildPatchServices: Fix for file download needing to mock response codes for higher layer statistics code which tracks data sizes and speeds. This is a regression from previous change to correct download failure vs corruption statistics. Change 5224725 by Leigh.Swift BuildPatchServices: Fix for delta download of more than 0 bytes when no update is necessary. BuildPatchServices: Skip requesting delta metafile if no file changes are actually required for a patch. BuildPatchTool: Reduce unnecessary data produced by BPT ChunkDeltaOptimise mode. Change 5010941 by Mike.Erickson BuildPatchServices: Add download scaling based on average speed per request, maximum count, and download health. Change 5010845 by Wes.Fudala BuildPatchServices: IDownload refactored to have specific request and response success functions, to make it clearer that a successful request does not mean the response was also good. BuildPatchServices: Fixed issues with download failures reporting as corruptions. Change 5000643 by Wes.Hunt Remove HttpServiceTracker from UE4. Change 4884381 by Leigh.Swift BuildPatchTool: Fix for Package Chunks mode hanging when no chunks were required. Change 4848675 by Justin.Sargent, Leigh.Swift Speculative fixes for graphics device lost related crash, by adding additional d3d api result checks. Improved logging for graphics device lost handling. Improved logging for tracking down common font loading failure resulting in an ensure. Change 4831134 by Leigh.Swift BuildPatchTool: Fix for crash in patchgeneration when fast-forward path replays no match. Change 4801714 by Wes.Fudala Fix for CEF issue encountered when building using Mac Mojave + XCode10. Change 4719149 by Leigh.Swift BuildPatchTool: PatchGeneration mode cyclic data optimisation, reduces SHA calculation requirement counts for cyclic data. BuildPatchTool: PatchGeneration mode fix for a bug causing non-optimal match insertion idx searching when there are 10k+ matches per scanner. Change 4680963 by Leigh.Swift BuildPatchTool: ChunkDeltaOptimise mode is now FeatureLevel upgrade / downgrade aware. Change 4680947 by Leigh.Swift BuildPatchTool: Compactify speed improvements for massive network cloud directories. Change 4656991 by Leigh.Swift BuildPatchServices: Make sure chunk writer robustly discovers if a chunk fails to save out. Change 4647815 by Leigh.Swift Upping the minimum wait time for UdpMessageBeacon thread so that it will not always wait 0ms when network sends are failing, reducing disconnect CPU usage. Adding configurable tick rate logic to XmppConnectionJingle thread. It will now default to 100Hz max. Change 4627355 by Michael.Trepka Fixed a problem with CEF being unable to find locale pak files on Mac for certain language/region combinations Change 4620800 by Leigh.Swift Fix for CEF crash when disabling a web window that has not yet got a parent window. There's no need to worry about focus in this case. Change 4590207 by Leigh.Swift BuildPatchTool: PackageChunks mode now supports FeatureLevel arg Change 4590103 by leigh.swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4590089 by Leigh.Swift BuildPatchTool: Adding new mode ChunkDeltaOptimise which reducing the download size when patching between two specific builds in a specific direction. BuildPatchTool: Updated Enumeration, DiffManifests, Compactify, PackageChunks, and VerifyChunks modes to take account of new delta data. BuildPatchServices: Installers now have a single shared memory chunk store, which reduces the requirement for booting Change 4341076 by Leigh.Swift BuildPatchServices: Making FBuildPatchAppManifest::GetRemovableFiles more robust to handle directories with or without trailing slash. Change 4331754 by Leigh.Swift BuildPatchTool: Added support for selecting ChunkWindowSize when generating patches. BuildPatchTool: Added support for providing the FeatureLevel command-line argument to indicate the data version that should be saved out by patch generation. This warns about defaulting to LatestJson if not provided. BuildPatchTool: Added support for generating patches with recognition for any chunks with any ChunkWindowSize found in the provided CloudDir. BuildPatchTool: Added command-line -IgnoreOtherWindowSizes param which if provided, the generation code will only accept chunk matches that are the same as ChunkWindowSize. BuildPatchServices: Fixes for supporting installations that use any ChunkWindowSize. BuildPatchServices: New manifest file format to reduce file size, this is now raw compressed binary data. #lockdown Nick.Penwarden #rb none [CL 8675597 by Leigh Swift in Main branch]
2019-09-13 13:24:23 -04:00
OnBuildPatchCompletedDelegate.Broadcast(Installer->CompletedSuccessfully());
}
void FBuildPatchServicesPreLoadManagerBase::PauseBuildPatchInstall()
{
if (ContentBuildInstaller.IsValid() && !ContentBuildInstaller->IsPaused())
{
ContentBuildInstaller->TogglePauseInstall();
}
}
void FBuildPatchServicesPreLoadManagerBase::ResumeBuildPatchInstall()
{
if (ContentBuildInstaller.IsValid() && ContentBuildInstaller->IsPaused())
{
ContentBuildInstaller->TogglePauseInstall();
}
}
void FBuildPatchServicesPreLoadManagerBase::CancelBuildPatchInstall()
{
if (ContentBuildInstaller.IsValid())
{
ContentBuildInstaller->CancelInstall();
}
}
const FText& FBuildPatchServicesPreLoadManagerBase::GetStatusText() const
{
// Static const fixed FText values so that they are not constantly constructed
static const FText Queued = LOCTEXT("StatusText.Queued", "Queued");
static const FText Initializing = LOCTEXT("StatusText.Initializing", "Initializing");
static const FText Resuming = LOCTEXT("StatusText.Resuming", "Resuming");
static const FText Downloading = LOCTEXT("StatusText.Downloading", "Downloading");
static const FText Installing = LOCTEXT("StatusText.Installing", "Installing");
static const FText BuildVerification = LOCTEXT("StatusText.BuildVerification", "Verifying");
static const FText CleanUp = LOCTEXT("StatusText.CleanUp", "Cleaning up");
static const FText PrerequisitesInstall = LOCTEXT("StatusText.PrerequisitesInstall", "Prerequisites");
static const FText Completed = LOCTEXT("StatusText.Complete", "Complete");
static const FText Paused = LOCTEXT("StatusText.Paused", "Paused");
const BuildPatchServices::EBuildPatchState State = (ContentBuildInstaller.IsValid() ? ContentBuildInstaller->GetState() : BuildPatchServices::EBuildPatchState::Initializing);
switch (State)
{
case BuildPatchServices::EBuildPatchState::Queued:
return Queued;
case BuildPatchServices::EBuildPatchState::Resuming:
return Resuming;
case BuildPatchServices::EBuildPatchState::Downloading:
return Downloading;
case BuildPatchServices::EBuildPatchState::Installing:
case BuildPatchServices::EBuildPatchState::MovingToInstall:
case BuildPatchServices::EBuildPatchState::SettingAttributes:
return Installing;
case BuildPatchServices::EBuildPatchState::BuildVerification:
return BuildVerification;
case BuildPatchServices::EBuildPatchState::CleanUp:
return CleanUp;
case BuildPatchServices::EBuildPatchState::PrerequisitesInstall:
return PrerequisitesInstall;
case BuildPatchServices::EBuildPatchState::Completed:
return Completed;
case BuildPatchServices::EBuildPatchState::Paused:
return Paused;
case BuildPatchServices::EBuildPatchState::Initializing:
default:
return Initializing;
}
}
#undef LOCTEXT_NAMESPACE