Navigation
API > API/Plugins > API/Plugins/Hotfix
This class manages the downloading and application of hotfix data Hotfix data is a set of non-executable files downloaded and applied to the game. The base implementation knows how to handle INI, PAK, and locres files. NOTE: Each INI/PAK file must be prefixed by the platform name they are targeted at
| Name | UOnlineHotfixManager |
| Type | class |
| Header File | /Engine/Plugins/Online/OnlineFramework/Source/Hotfix/Public/OnlineHotfixManager.h |
| Include Path | #include "OnlineHotfixManager.h" |
Syntax
UCLASS (MinimalAPI, Config=Engine)
class UOnlineHotfixManager : public UObject
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UOnlineHotfixManager
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| OnlineHotfixManager.h | |||
UOnlineHotfixManager
(
FVTableHelper& Helper |
OnlineHotfixManager.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~UOnlineHotfixManager() |
OnlineHotfixManager.h |
Structs
| Name | Remarks |
|---|---|
| FConfigFileBackup | |
| FPendingFileDLProgress |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AssetsHotfixedFromIniFiles | TArray< TObjectPtr< UObject > > | Array of objects that we're forcing to remain resident because we've applied live hotfixes and won't get an opportunity to reapply changes if the object is evicted from memory. | OnlineHotfixManager.h |
|
| AsyncFlushContext | TUniquePtr< FAsyncLoadingFlushContext > | Asynchronously flush async loading before starting the hotfixing process. | OnlineHotfixManager.h | |
| bHotfixingInProgress | bool | Some title file interfaces aren't re-entrant so handle it ourselves | OnlineHotfixManager.h | |
| bHotfixNeedsMapReload | bool | Set to true if any PAK file contains an update to a level that is currently loaded | OnlineHotfixManager.h | |
| bLogMountedPakContents | bool | Whether we want to log all of the files that are in a mounted pak file or not | OnlineHotfixManager.h | |
| ChangedHotfixFileList | TArray< FCloudFileHeader > | The set of hotfix files that have changed from the last time we applied them | OnlineHotfixManager.h | |
| ChangedOrRemovedPakCount | uint32 | If we have removed or changed a currently mounted PAK file, then we'll need to restart the app because there's no simple undo for objects that were loaded and possibly rooted | OnlineHotfixManager.h | |
| DebugPrefix | FString | Used to prevent development work from interfering with playtests, etc. | OnlineHotfixManager.h |
|
| DefaultPrefix | FString | Normally will be "Default" but could be different if we have a debug prefix | OnlineHotfixManager.h | |
| DynamicHotfixContents | TMap< FName, TArray< TPair< FString, FString > > > | Loaded hotfix contents that were not mapped to any known branch, but might be loaded later | OnlineHotfixManager.h | |
| GameContentPath | FString | Holds a chunk of string that will be swapped for Game during processing pak files (MyGame/Content/Maps -> /Game/Maps) | OnlineHotfixManager.h | |
| HotfixFileList | TArray< FCloudFileHeader > | The filtered list of files that are part of the hotfix | OnlineHotfixManager.h | |
| HotfixManagerClassName | FString | Tells the factory method which class to contruct | OnlineHotfixManager.h |
|
| IniBackups | TArray< FConfigFileBackup > | Backup copies of INI files that change during hotfixing so they can be undone afterward | OnlineHotfixManager.h | |
| LastHotfixFileList | TArray< FCloudFileHeader > | The last set of hotfix files that was applied so we can determine whether we are up to date or not | OnlineHotfixManager.h | |
| MountedPakFiles | TArray< FString > | Holds which files have been mounted for unmounting | OnlineHotfixManager.h | |
| NumBytes | uint64 | OnlineHotfixManager.h | ||
| NumDownloaded | uint32 | OnlineHotfixManager.h | ||
| OnHotfixCompleteDelegates | FOnHotfixComplete | Delegate fired when the hotfix process has completed | OnlineHotfixManager.h | |
| OnHotfixProcessedFileDelegates | FOnHotfixProcessedFile | Delegate fired for each new/updated file after it is applied | OnlineHotfixManager.h | |
| OnHotfixProgressDelegates | FOnHotfixProgress | Delegate fired as the hotfix files are read | OnlineHotfixManager.h | |
| OnHotfixRemovedFileDelegates | FOnHotfixRemovedFile | Delegate fired for each removed file | OnlineHotfixManager.h | |
| OnHotfixUpdatedFileDelegates | FOnHotfixUpdatedFile | Delegate fired for each added/updated file | OnlineHotfixManager.h | |
| OSSName | FString | Tells the hotfix manager which OSS to use. Uses the default if empty | OnlineHotfixManager.h |
|
| OwnerWorld | TWeakObjectPtr< UWorld > | Our passed-in World | OnlineHotfixManager.h | |
| PendingHotfixFiles | TMap< FString, FPendingFileDLProgress > | Holds which files are pending download | OnlineHotfixManager.h | |
| PlatformPrefix | FString | Used to match any PAK files for this platform | OnlineHotfixManager.h | |
| RemovedHotfixFileList | TArray< FCloudFileHeader > | The set of hotfix files that have been removed from the last time we applied them | OnlineHotfixManager.h | |
| ServerPrefix | FString | Used to match any server-only hotfixes | OnlineHotfixManager.h | |
| TotalBytes | uint64 | Tracks the size of the files being processed as part of the hotfix | OnlineHotfixManager.h | |
| TotalFiles | uint32 | Tracks how many files are being processed as part of the hotfix | OnlineHotfixManager.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FDelegateHandle AddOnHotfixCompleteDelegate_Handle
(
const FOnHotfixCompleteDelegate& Delegate |
OnlineHotfixManager.h | ||
virtual FDelegateHandle AddOnHotfixProcessedFileDelegate_Handle
(
const FOnHotfixProcessedFileDelegate& Delegate |
OnlineHotfixManager.h | ||
virtual FDelegateHandle AddOnHotfixProgressDelegate_Handle
(
const FOnHotfixProgressDelegate& Delegate |
OnlineHotfixManager.h | ||
virtual FDelegateHandle AddOnHotfixRemovedFileDelegate_Handle
(
const FOnHotfixRemovedFileDelegate& Delegate |
OnlineHotfixManager.h | ||
virtual FDelegateHandle AddOnHotfixUpdatedFileDelegate_Handle
(
const FOnHotfixUpdatedFileDelegate& Delegate |
OnlineHotfixManager.h | ||
EHotfixResult ApplyHotfix() |
Looks at each file returned via the hotfix and processes them | OnlineHotfixManager.h | |
FConfigFileBackup & BackupIniFile
(
const FString& IniName, |
Stores off the INI file for restoration later | OnlineHotfixManager.h | |
| OnlineHotfixManager.h | |||
void BuildHotfixFileListDeltas() |
Builds the list of files that are different between two runs of the hotfix process | OnlineHotfixManager.h | |
virtual void CheckAvailability
(
FOnHotfixAvailableComplete& InCompletionDelegate |
Check for available hotfix files (but do not apply them) | OnlineHotfixManager.h | |
virtual void Cleanup() |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixCompleteDelegate_Handle
(
FDelegateHandle& Handle |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixCompleteDelegates
(
FDelegateUserObject Object |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixProcessedFileDelegate_Handle
(
FDelegateHandle& Handle |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixProcessedFileDelegates
(
FDelegateUserObject Object |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixProgressDelegate_Handle
(
FDelegateHandle& Handle |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixProgressDelegates
(
FDelegateUserObject Object |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixRemovedFileDelegate_Handle
(
FDelegateHandle& Handle |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixRemovedFileDelegates
(
FDelegateUserObject Object |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixUpdatedFileDelegate_Handle
(
FDelegateHandle& Handle |
OnlineHotfixManager.h | ||
virtual void ClearOnHotfixUpdatedFileDelegates
(
FDelegateUserObject Object |
OnlineHotfixManager.h | ||
void FilterHotfixFiles() |
Checks each file listed to see if it is a hotfix file to process | OnlineHotfixManager.h | |
FConfigBranch * GetBranch
(
const FString& IniName |
OnlineHotfixManager.h | ||
FConfigFile * GetConfigFile
(
const FString& IniName |
OnlineHotfixManager.h | ||
| OnlineHotfixManager.h | |||
| OnlineHotfixManager.h | |||
UWorld * GetWorld() |
OnlineHotfixManager.h | ||
void HotfixDynamicBranch
(
const FName& Tag, |
Hotfix a dynamic config branch that was just loaded | OnlineHotfixManager.h | |
virtual void Init() |
OnlineHotfixManager.h | ||
bool IsMapLoaded
(
const FString& MapName |
OnlineHotfixManager.h | ||
void OnEnumerateFilesComplete
(
bool bWasSuccessful, |
Called once the list of hotfix files has been retrieved | OnlineHotfixManager.h | |
void OnEnumerateFilesForAvailabilityComplete
(
bool bWasSuccessful, |
Called once the list of hotfix files has been retrieved and we only want to see if a hotfix is necessary | OnlineHotfixManager.h | |
void OnReadFileComplete
(
bool bWasSuccessful, |
Called as files are downloaded to determine when to apply the hotfix data | OnlineHotfixManager.h | |
void OnReadFileProgress
(
const FString& FileName, |
Called as files are downloaded to provide progress notifications | OnlineHotfixManager.h | |
void ReadHotfixFiles() |
Starts the async reading process for the hotfix files | OnlineHotfixManager.h | |
void RestoreBackupIniFiles() |
Restores any changed INI files to their default loaded state | OnlineHotfixManager.h | |
virtual void StartHotfixProcess() |
Starts the fetching of hotfix data from the OnlineTitleFileInterface that is registered for this game | OnlineHotfixManager.h |
|
void StopTrackingInvalidHotfixedAssets() |
Stop tracking hotfixed assets marked as garbage | OnlineHotfixManager.h | |
void TriggerHotfixComplete
(
EHotfixResult HotfixResult |
Cleans up and fires the delegate indicating it's done | OnlineHotfixManager.h | |
virtual void TriggerOnHotfixCompleteDelegates
(
EHotfixResult Param1 |
OnlineHotfixManager.h | ||
| OnlineHotfixManager.h | |||
virtual void TriggerOnHotfixProgressDelegates
(
uint32 Param1, |
OnlineHotfixManager.h | ||
virtual void TriggerOnHotfixRemovedFileDelegates
(
const FString& Param1 |
OnlineHotfixManager.h | ||
| OnlineHotfixManager.h | |||
void UnmountHotfixFiles() |
Unmounts any changed PAK files so they can be re-mounted after downloading | OnlineHotfixManager.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostInitProperties() |
OnlineHotfixManager.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool ApplyHotfixProcessing
(
const FCloudFileHeader& FileHeader |
Called when a file needs custom processing (see above). | OnlineHotfixManager.h | |
void ApplyLocalTestHotfix
(
FString Filename |
Test function that applies a local file as if it were a hotfix. | OnlineHotfixManager.h | |
virtual FString GetCachedDirectory() |
Override this to change the default caching directory | OnlineHotfixManager.h | |
virtual FString GetDedicatedServerPrefix() |
Allow the application to override the dedicated server filename prefix. | OnlineHotfixManager.h | |
FCloudFileHeader * GetFileHeaderFromDLName
(
const FString& FileName |
Finds the header associated with the file name | OnlineHotfixManager.h | |
| Used in PatchAssetsFromIniFiles to hotfix a new row in a table. | OnlineHotfixManager.h | ||
| Override this to change the default INI file handling (merge delta INI changes into the config cache) | OnlineHotfixManager.h | ||
virtual bool HotfixPakFile
(
const FCloudFileHeader& FileHeader |
Override this to change the default PAK file handling: | OnlineHotfixManager.h | |
virtual bool HotfixPakIniFile
(
const FString& FileName |
Override this to change the default INI file handling (merge whole INI files into the config cache) | OnlineHotfixManager.h | |
| Used in PatchAssetsFromIniFiles to hotfix only a row in a table. | OnlineHotfixManager.h | ||
| Used in PatchAssetsFromIniFiles to hotfix an entire table. | OnlineHotfixManager.h | ||
| Is this hotfix file compatible with the current build If the file has version information it is compared with compatibility If the file has NO version information it is assumed compatible | OnlineHotfixManager.h | ||
virtual void OnHotfixAvailablityCheck
(
const TArray< FCloudFileHeader >& PendingChangedFiles, |
Notify used by CheckAvailability() | OnlineHotfixManager.h | |
| Called after adding table row by HotfixAddRow() | OnlineHotfixManager.h | ||
| OnlineHotfixManager.h | |||
| OnlineHotfixManager.h | |||
| Called after modifying table values by HotfixRowUpdate() | OnlineHotfixManager.h | ||
| OnlineHotfixManager.h | |||
| OnlineHotfixManager.h | |||
virtual void OnHotfixTableValueSoftObject
(
UObject& Asset, |
OnlineHotfixManager.h | ||
| OnlineHotfixManager.h | |||
virtual void PatchAssetsFromIniFiles() |
Called after any hotfixes are applied to apply last-second changes to certain asset types from .ini file data | OnlineHotfixManager.h | |
virtual bool PreProcessDownloadedFileData
(
const FCloudFileHeader& FileHeader, |
Called prior to reading the file data. | OnlineHotfixManager.h | |
virtual void ReloadConfigsFromIniFiles() |
Called after any hotfixes are applied to apply last-second changes to Config properties from .ini file data | OnlineHotfixManager.h | |
virtual bool ShouldHotfixAsset
(
const FString& AssetPath |
Allow child classes to determine if specific assets should be hotfixed or not | OnlineHotfixManager.h | |
virtual bool ShouldPerformHotfix() |
OnlineHotfixManager.h | ||
virtual bool ShouldWarnAboutMissingWhenPatchingFromIni
(
const FString& AssetPath |
OnlineHotfixManager.h | ||
void UpdateProgress
(
uint32 FileCount, |
Fires the progress delegate with our updated progress | OnlineHotfixManager.h | |
virtual bool WantsHotfixProcessing
(
const FCloudFileHeader& FileHeader |
Override this method to look at the file information for any game specific hotfix processing NOTE: Make sure to call Super to get default handling of files | OnlineHotfixManager.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static UOnlineHotfixManager * Get
(
UWorld* World |
Factory method that returns the configured hotfix manager | OnlineHotfixManager.h | |
| OnlineHotfixManager.h |