Navigation
Unreal Engine C++ API Reference > 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&40;Config&61;Engine&41;
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 |
![]() |
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). |
![]() |
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 * | Factory method that returns the configured hotfix manager | |
![]() ![]() |
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 () |
|
![]() ![]() |
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 | HotfixRowUpdate
(
UObject* Asset, |
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 | OnHotfixTableValueInt64
(
UObject& Asset, |
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 | Restores any changed INI files to their default loaded state | |
![]() ![]() |
bool | ||
![]() ![]() ![]() |
bool | ShouldWarnAboutMissingWhenPatchingFromIni
(
const FString& AssetPath |
|
![]() ![]() ![]() ![]() |
void | Starts the fetching of hotfix data from the OnlineTitleFileInterface that is registered for this game | |
![]() |
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 |
Deprecated Functions
Type | Name | Description | |
---|---|---|---|
![]() ![]() ![]() |
bool | PreProcessDownloadedFileData
(
TArray< uint8 >& FileData |
Replaced with PreProcessDownloadedFileData taking a FCloudFileHeader |