Navigation
API > API/Plugins > API/Plugins/Hotfix
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UOnlineHotfixManager
References
| Module | Hotfix |
| Header | /Engine/Plugins/Online/OnlineFramework/Source/Hotfix/Public/OnlineHotfixManager.h |
| Include | #include "OnlineHotfixManager.h" |
Syntax
UCLASS (Config=Engine)
class UOnlineHotfixManager : public UObject
Remarks
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
Variables
| Type | Name | Description | |
|---|---|---|---|
| TArray< TObjectPtr< UObject > > | AssetsHotfixedFromIniFiles | 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. | |
| TUniquePtr< FAsyncLoadingFlushContext > | AsyncFlushContext | Asynchronously flush async loading before starting the hotfixing process. | |
| bool | bHotfixingInProgress | Some title file interfaces aren't re-entrant so handle it ourselves | |
| bool | bHotfixNeedsMapReload | Set to true if any PAK file contains an update to a level that is currently loaded | |
| bool | bLogMountedPakContents | Whether we want to log all of the files that are in a mounted pak file or not | |
| TArray< FCloudFileHeader > | ChangedHotfixFileList | The set of hotfix files that have changed from the last time we applied them | |
| uint32 | ChangedOrRemovedPakCount | 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 | |
| FString | DebugPrefix | Used to prevent development work from interfering with playtests, etc. | |
| FString | DefaultPrefix | Normally will be "Default" but could be different if we have a debug prefix | |
| TMap< FName, FString > | DynamicHotfixContents | Loaded hotfix contents that were not mapped to any known branch, but might be loaded later | |
| FString | GameContentPath | Holds a chunk of string that will be swapped for Game during processing pak files (MyGame/Content/Maps -> /Game/Maps) | |
| TArray< FCloudFileHeader > | HotfixFileList | The filtered list of files that are part of the hotfix | |
| FString | HotfixManagerClassName | Tells the factory method which class to contruct | |
| TArray< FConfigFileBackup > | IniBackups | Backup copies of INI files that change during hotfixing so they can be undone afterward | |
| TArray< FCloudFileHeader > | LastHotfixFileList | The last set of hotfix files that was applied so we can determine whether we are up to date or not | |
| TArray< FString > | MountedPakFiles | Holds which files have been mounted for unmounting | |
| uint64 | NumBytes | ||
| uint32 | NumDownloaded | ||
| FOnEnumerateFilesCompleteDelegate | OnEnumerateFilesCompleteDelegate | Callbacks for when the title file interface is done | |
| FDelegateHandle | OnEnumerateFilesCompleteDelegateHandle | ||
| FDelegateHandle | OnEnumerateFilesForAvailabilityCompleteDelegateHandle | ||
| FOnHotfixComplete | OnHotfixCompleteDelegates | Delegate fired when the hotfix process has completed | |
| FOnHotfixProcessedFile | OnHotfixProcessedFileDelegates | Delegate fired for each new/updated file after it is applied | |
| FOnHotfixProgress | OnHotfixProgressDelegates | Delegate fired as the hotfix files are read | |
| FOnHotfixRemovedFile | OnHotfixRemovedFileDelegates | Delegate fired for each removed file | |
| FOnHotfixUpdatedFile | OnHotfixUpdatedFileDelegates | Delegate fired for each added/updated file | |
| IOnlineTitleFilePtr | OnlineTitleFile | The online interface to use for downloading the hotfix files | |
| FOnReadFileCompleteDelegate | OnReadFileCompleteDelegate | ||
| FDelegateHandle | OnReadFileCompleteDelegateHandle | ||
| FOnReadFileProgressDelegate | OnReadFileProgressDelegate | ||
| FDelegateHandle | OnReadFileProgressDelegateHandle | ||
| FString | OSSName | Tells the hotfix manager which OSS to use. Uses the default if empty | |
| TWeakObjectPtr< UWorld > | OwnerWorld | Our passed-in World | |
| TMap< FString, FPendingFileDLProgress > | PendingHotfixFiles | Holds which files are pending download | |
| FString | PlatformPrefix | Used to match any PAK files for this platform | |
| TArray< FCloudFileHeader > | RemovedHotfixFileList | The set of hotfix files that have been removed from the last time we applied them | |
| FString | ServerPrefix | Used to match any server-only hotfixes | |
| uint64 | TotalBytes | Tracks the size of the files being processed as part of the hotfix | |
| uint32 | TotalFiles | Tracks how many files are being processed as part of the hotfix |
Constructors
| Type | Name | Description | |
|---|---|---|---|
UOnlineHotfixManager
(
FVTableHelper& Helper |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| FDelegateHandle | AddOnHotfixCompleteDelegate_Handle
(
const FOnHotfixCompleteDelegate& Delegate |
||
| FDelegateHandle | AddOnHotfixProcessedFileDelegate_Handle
(
const FOnHotfixProcessedFileDelegate& Delegate |
||
| FDelegateHandle | AddOnHotfixProgressDelegate_Handle
(
const FOnHotfixProgressDelegate& Delegate |
||
| FDelegateHandle | AddOnHotfixRemovedFileDelegate_Handle
(
const FOnHotfixRemovedFileDelegate& Delegate |
||
| FDelegateHandle | AddOnHotfixUpdatedFileDelegate_Handle
(
const FOnHotfixUpdatedFileDelegate& Delegate |
||
| EHotfixResult | ApplyHotfix () |
Looks at each file returned via the hotfix and processes them | |
| bool | ApplyHotfixProcessing
(
const FCloudFileHeader& FileHeader |
Called when a file needs custom processing (see above). | |
| void | ApplyLocalTestHotfix
(
FString Filename |
Test function that applies a local file as if it were a hotfix. | |
| FConfigFileBackup & | BackupIniFile
(
const FString& IniName, |
Stores off the INI file for restoration later | |
| FString | BuildConfigCacheKey
(
const FString& IniName |
||
| void | Builds the list of files that are different between two runs of the hotfix process | ||
| void | CheckAvailability
(
FOnHotfixAvailableComplete& InCompletionDelegate |
Check for available hotfix files (but do not apply them) | |
| void | Cleanup () |
||
| void | ClearOnHotfixCompleteDelegate_Handle
(
FDelegateHandle& Handle |
||
| void | ClearOnHotfixCompleteDelegates
(
void* Object |
||
| void | |||
| void | ClearOnHotfixProcessedFileDelegates
(
void* Object |
||
| void | ClearOnHotfixProgressDelegate_Handle
(
FDelegateHandle& Handle |
||
| void | ClearOnHotfixProgressDelegates
(
void* Object |
||
| void | |||
| void | ClearOnHotfixRemovedFileDelegates
(
void* Object |
||
| void | |||
| void | ClearOnHotfixUpdatedFileDelegates
(
void* Object |
||
| void | Checks each file listed to see if it is a hotfix file to process | ||
| UOnlineHotfixManager * | Get
(
UWorld* World |
Factory method that returns the configured hotfix manager | |
| FConfigBranch * | |||
| FString | Override this to change the default caching directory | ||
| FConfigFile * | GetConfigFile
(
const FString& IniName |
||
| FString | Allow the application to override the dedicated server filename prefix. | ||
| FCloudFileHeader * | GetFileHeaderFromDLName
(
const FString& FileName |
Finds the header associated with the file name | |
| const FString | GetFriendlyNameFromDLName
(
const FString& DLName |
||
| FString | GetStrippedConfigFileName
(
const FString& IniName |
||
| UWorld * | GetWorld () |
||
| void | HotfixDynamicBranch
(
const FName& Tag, |
Hotfix a dynamic config branch that was just loaded | |
| bool | HotfixIniFile
(
const FString& FileName, |
Override this to change the default INI file handling (merge delta INI changes into the config cache) | |
| bool | HotfixPakFile
(
const FCloudFileHeader& FileHeader |
Override this to change the default PAK file handling: | |
| bool | HotfixPakIniFile
(
const FString& FileName |
Override this to change the default INI file handling (merge whole INI files into the config cache) | |
| void | Used in PatchAssetsFromIniFiles to hotfix only a row in a table. | ||
| void | Used in PatchAssetsFromIniFiles to hotfix an entire table. | ||
| void | Init () |
||
| bool | IsCompatibleHotfixFile
(
const FString& InFilename, |
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 | |
| bool | IsMapLoaded
(
const FString& MapName |
||
| void | OnEnumerateFilesComplete
(
bool bWasSuccessful, |
Called once the list of hotfix files has been retrieved | |
| 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 | |
| void | OnHotfixAvailablityCheck
(
const TArray< FCloudFileHeader >& PendingChangedFiles, |
Notify used by CheckAvailability() | |
| void | OnHotfixTableValueDouble
(
UObject& Asset, |
||
| void | OnHotfixTableValueFloat
(
UObject& Asset, |
||
| void | Called after modifying table values by HotfixRowUpdate() | ||
| void | |||
| void | |||
| void | OnHotfixTableValueSoftObject
(
UObject& Asset, |
||
| void | |||
| void | OnReadFileComplete
(
bool bWasSuccessful, |
Called as files are downloaded to determine when to apply the hotfix data | |
| void | OnReadFileProgress
(
const FString& FileName, |
Called as files are downloaded to provide progress notifications | |
| void | Called after any hotfixes are applied to apply last-second changes to certain asset types from .ini file data | ||
| bool | PreProcessDownloadedFileData
(
const FCloudFileHeader& FileHeader, |
Called prior to reading the file data. | |
| void | Starts the async reading process for the hotfix files | ||
| void | Called after any hotfixes are applied to apply last-second changes to Config properties from .ini file data | ||
| void | |||
| void | Restores any changed INI files to their default loaded state | ||
| bool | ShouldHotfixAsset
(
const FString& AssetPath |
Allow child classes to determine if specific assets should be hotfixed or not | |
| bool | |||
| bool | ShouldWarnAboutMissingWhenPatchingFromIni
(
const FString& AssetPath |
||
| void | Starts the fetching of hotfix data from the OnlineTitleFileInterface that is registered for this game | ||
| void | Stop tracking hotfixed assets marked as garbage | ||
| void | TriggerHotfixComplete
(
EHotfixResult HotfixResult |
Cleans up and fires the delegate indicating it's done | |
| void | TriggerOnHotfixCompleteDelegates
(
EHotfixResult Param1 |
||
| void | TriggerOnHotfixProcessedFileDelegates
(
const FString& Param1, |
||
| void | TriggerOnHotfixProgressDelegates
(
uint32 Param1, |
||
| void | TriggerOnHotfixRemovedFileDelegates
(
const FString& Param1 |
||
| void | TriggerOnHotfixUpdatedFileDelegates
(
const FString& Param1, |
||
| void | Unmounts any changed PAK files so they can be re-mounted after downloading | ||
| void | UpdateProgress
(
uint32 FileCount, |
Fires the progress delegate with our updated progress | |
| 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 |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | Called after the C++ constructor and after the properties have been initialized, including those loaded from config. |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FConfigFileBackup | |||
| FPendingFileDLProgress |