UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FSaveContext Class Reference

#include <SaveContext.h>

Classes

struct  FSetSaveRealmToSaveScope
 

Public Member Functions

 FSaveContext (UPackage *InPackage, UObject *InAsset, const TCHAR *InFilename, const FSavePackageArgs &InSaveArgs)
 
 ~FSaveContext ()
 
uint32 GetInitialPackageFlags () const
 
const FSavePackageArgsGetSaveArgs () const
 
FArchiveSavePackageDataGetArchiveSavePackageData ()
 
const ITargetPlatformGetTargetPlatform () const
 
UPackageGetPackage () const
 
UObjectGetAsset () const
 
const TCHARGetFilename () const
 
const FPackagePathGetTargetPackagePath () const
 
EObjectMark GetExcludedObjectMarks (ESaveRealm HarvestingRealm) const
 
EObjectFlags GetTopLevelFlags () const
 
bool IsUsingSlowTask () const
 
FOutputDeviceGetError () const
 
const FDateTimeGetFinalTimestamp () const
 
FSavePackageContextGetSavePackageContext () const
 
bool IsCooking () const
 
bool IsProceduralSave () const
 
bool IsUpdatingLoadedPath () const
 
bool IsFilterEditorOnly () const
 
bool IsStripEditorOnly () const
 
bool IsForceByteSwapping () const
 
bool IsWarningLongFilename () const
 
bool IsTextFormat () const
 
bool IsFromAutoSave () const
 
bool IsSaveToMemory () const
 
bool IsGenerateSaveError () const
 
bool IsKeepDirty () const
 
bool IsSaveUnversionedNative () const
 
bool IsSaveUnversionedProperties () const
 
bool IsSaveOptional () const
 
bool IsSaveAutoOptional () const
 
bool IsConcurrent () const
 
bool IsIgnoringHeaderDiff () const
 
bool IsProcessingPrestreamingRequests () const
 
bool IsFixupStandaloneFlags () const
 
bool ShouldRehydratePayloads () const
 
bool GetPostSaveRootRequired () const
 
void SetPostSaveRootRequired (bool bInPostSaveRootRequired)
 
bool GetPreSaveCleanup () const
 
void SetPreSaveCleanup (bool bInNeedPreSaveCleanup)
 
bool IsStubRequested () const
 
void RequestStubFile ()
 
ESaveRealm GetCurrentHarvestingRealm () const
 
TArray< ESaveRealmGetHarvestedRealmsToSave ()
 
UObjectResolveForSave (TObjectPtr< UObject > InObject, UE::SavePackageUtilities::FObjectStatus &Status)
 
bool IsTransient (TObjectPtr< UObject > InObject)
 
bool IsTransient (TObjectPtr< UObject > InObject, UE::SavePackageUtilities::FObjectStatus &ObjectStatus)
 
bool IsUnsaveable (TObjectPtr< UObject > InObject, UE::SavePackageUtilities::FObjectStatus &ObjectStatus, bool bEmitWarning=true)
 
void UpdateSaveableStatus (TObjectPtr< UObject > InObject, UE::SavePackageUtilities::FObjectStatus &ObjectStatus)
 
UE::SavePackageUtilities::FObjectStatusGetCachedObjectStatus (TObjectPtr< UObject > InObject)
 
UE::SavePackageUtilities::FObjectStatusFindCachedObjectStatus (TObjectPtr< const UObject > InObject) const
 
void RecordIllegalReference (UObject *InFrom, UObject *InTo, EIllegalRefReason InReason, FString &&InOptionalReasonText=FString())
 
const TArray< FIllegalReference > & GetIllegalReferences () const
 
void AddImport (UObject *InObject)
 
void AddDirectImport (UObject *InObject)
 
void AddExport (FTaggedExport InTagObj)
 
void AddExcluded (UObject *InObject)
 
bool IsImport (UObject *InObject) const
 
bool IsExport (UObject *InObject) const
 
bool IsIncluded (TObjectPtr< UObject > InObject) const
 
TSet< FTaggedExport > & GetExports ()
 
TArray< UE::SavePackageUtilities::FPreloadDependency > & GetPreloadDependencies ()
 
const TSet< TObjectPtr< UObject > > & GetImports () const
 
const TSet< TObjectPtr< UObject > > & GetDirectImports () const
 
const TSet< TObjectPtr< UObject > > & GetImportsUsedInGame () const
 
const TSet< Verse::VCell * > & GetCellExports () const
 
const TSet< Verse::VCell * > & GetCellImports () const
 
const TSet< FName > & GetSoftPackageReferenceList () const
 
TSet< FName > & GetSoftPackageReferenceList ()
 
const TSet< FName > & GetSoftPackagesUsedInGame () const
 
TSet< FName > & GetSoftPackagesUsedInGame ()
 
const TSet< FName > & GetUntrackedSoftPackageReferenceList () const
 
const TArray< FName > & GetPackageBuildDependencies (ESaveRealm SaveRealm=ESaveRealm::None)
 
void UpdateEditorRealmPackageBuildDependencies ()
 
void AddExportedClassesToDependencies ()
 
const TMap< TObjectPtr< UObject >, TArray< FName > > & GetSearchableNamesObjectMap () const
 
TMap< TObjectPtr< UObject >, TArray< FName > > & GetSearchableNamesObjectMap ()
 
const TSet< FNameEntryId > & GetNamesReferencedFromExportData () const
 
const TSet< FNameEntryId > & GetNamesReferencedFromPackageHeader () const
 
TSet< FNameEntryId > & GetNamesReferencedFromPackageHeader ()
 
const TSet< FSoftObjectPath > & GetSoftObjectPathList () const
 
const TMap< TObjectPtr< UObject >, TSet< TObjectPtr< UObject > > > & GetObjectDependencies () const
 
const TMap< TObjectPtr< UObject >, TSet< TObjectPtr< UObject > > > & GetNativeObjectDependencies () const
 
const TMap< TObjectPtr< UObject >, TSet< Verse::VCell * > > & GetCellDependencies () const
 
const TMap< Verse::VCell *, TSet< TObjectPtr< UObject > > > & GetCellObjectDependencies () const
 
const TMap< Verse::VCell *, TSet< Verse::VCell * > > & GetCellCellDependeices () const
 
bool NameExists (const FName &Name) const
 
const FCustomVersionContainerGetCustomVersions () const
 
const TSet< TObjectPtr< UPackage > > & GetPrestreamPackages () const
 
TSet< TObjectPtr< UPackage > > & GetPrestreamPackages ()
 
bool IsPrestreamPackage (TObjectPtr< UPackage > InPackage) const
 
void AddPrestreamPackages (UPackage *InPackage)
 
void SetCustomVersions (FCustomVersionContainer InCustomVersions)
 
TArray< FLinkerSave * > GetLinkers () const
 
FLinkerSaveGetLinker () const
 
void UpdatePackageLinkerVersions ()
 
void UpdatePackageFileSize (int64 InFileSize)
 
void SetLinker (TPimplPtr< FLinkerSave > InLinker)
 
bool CloseLinkerArchives ()
 
FArchiveGetTextFormatArchive () const
 
void SetTextFormatArchive (TUniquePtr< FArchive > InTextArchive)
 
FArchiveFormatterTypeGetFormatter () const
 
void SetFormatter (TUniquePtr< FArchiveFormatterType > InFormatter)
 
FStructuredArchiveGetStructuredArchive () const
 
void SetStructuredArchive (TUniquePtr< FStructuredArchive > InArchive)
 
const TOptional< FString > & GetTempFilename () const
 
void SetTempFilename (TOptional< FString > InTemp)
 
const TOptional< FString > & GetTextFormatTempFilename () const
 
void SetTextFormatTempFilename (TOptional< FString > InTemp)
 
FSavePackageResultStruct GetFinalResult ()
 
FObjectSaveContextDataGetObjectSaveContext ()
 
IPackageWriterGetPackageWriter () const
 
PRAGMA_DISABLE_DEPRECATION_WARNINGS ISavePackageValidatorGetPackageValidator () const
 
PRAGMA_ENABLE_DEPRECATION_WARNINGS bool HasExternalImportValidations () const
 
const TArray< TFunction< FSavePackageSettings::ExternalImportValidationFunc > > & GetExternalImportValidations () const
 
bool HasExternalExportValidations () const
 
const TArray< TFunction< FSavePackageSettings::ExternalExportValidationFunc > > & GetExternalExportValidations () const
 
const FHarvestedRealmGetHarvestedRealm (ESaveRealm Realm=ESaveRealm::None) const
 
FHarvestedRealmGetHarvestedRealm (ESaveRealm Realm=ESaveRealm::None)
 
TArray< FAssetData > & GetSavedAssets ()
 
const TMap< UObject *, TSet< FProperty * > > & GetTransientPropertyOverrides ()
 
void SetTransientPropertyOverrides (TMap< UObject *, TSet< FProperty * > > &&InTransientPropertyOverrides)
 
void ClearSaveableCache ()
 
UE::SavePackageUtilities::EEditorOnlyObjectFlags GetEditorOnlyObjectFlags () const
 
void AddObjectToPostSaveSerialization (UObject *Object)
 
const TSet< UObject * > & GetPostSaveObjectsToSerialize () const
 

Public Attributes

ESavePackageResult Result
 
EPropertyLocalizationGathererResultFlags GatherableTextResultFlags = EPropertyLocalizationGathererResultFlags::Empty
 
FIoHash PackageSavedHash
 
int64 PackageHeaderAndExportSize = 0
 
int64 TotalPackageSizeUncompressed = 0
 
int32 OffsetAfterPackageFileSummary = 0
 
int32 OffsetAfterImportMap = 0
 
int32 OffsetAfterExportMap = 0
 
int64 OffsetAfterPayloadToc = 0
 
int32 SerializedPackageFlags = 0
 
TArray< FLargeMemoryWriter, TInlineAllocator< 4 > > AdditionalFilesFromExports
 
FSavePackageOutputFileArray AdditionalPackageFiles
 

Friends

class FPackageHarvester
 

Detailed Description

Helper class that encapsulate the full necessary context and intermediate result to save a package

Constructor & Destructor Documentation

◆ FSaveContext()

FSaveContext::FSaveContext ( UPackage InPackage,
UObject InAsset,
const TCHAR InFilename,
const FSavePackageArgs InSaveArgs 
)
inline

◆ ~FSaveContext()

FSaveContext::~FSaveContext ( )
inline

Member Function Documentation

◆ AddDirectImport()

void FSaveContext::AddDirectImport ( UObject InObject)
inline

◆ AddExcluded()

void FSaveContext::AddExcluded ( UObject InObject)
inline

◆ AddExport()

void FSaveContext::AddExport ( FTaggedExport  InTagObj)
inline

◆ AddExportedClassesToDependencies()

void FSaveContext::AddExportedClassesToDependencies ( )

◆ AddImport()

void FSaveContext::AddImport ( UObject InObject)
inline

◆ AddObjectToPostSaveSerialization()

void FSaveContext::AddObjectToPostSaveSerialization ( UObject Object)

◆ AddPrestreamPackages()

void FSaveContext::AddPrestreamPackages ( UPackage InPackage)
inline

◆ ClearSaveableCache()

void FSaveContext::ClearSaveableCache ( )
inline

◆ CloseLinkerArchives()

bool FSaveContext::CloseLinkerArchives ( )
inline

◆ FindCachedObjectStatus()

UE::SavePackageUtilities::FObjectStatus * FSaveContext::FindCachedObjectStatus ( TObjectPtr< const UObject InObject) const
inline

◆ GetArchiveSavePackageData()

FArchiveSavePackageData & FSaveContext::GetArchiveSavePackageData ( )
inline

◆ GetAsset()

UObject * FSaveContext::GetAsset ( ) const
inline

◆ GetCachedObjectStatus()

UE::SavePackageUtilities::FObjectStatus & FSaveContext::GetCachedObjectStatus ( TObjectPtr< UObject InObject)
inline

◆ GetCellCellDependeices()

const TMap< Verse::VCell *, TSet< Verse::VCell * > > & FSaveContext::GetCellCellDependeices ( ) const
inline

◆ GetCellDependencies()

const TMap< TObjectPtr< UObject >, TSet< Verse::VCell * > > & FSaveContext::GetCellDependencies ( ) const
inline

◆ GetCellExports()

const TSet< Verse::VCell * > & FSaveContext::GetCellExports ( ) const
inline

◆ GetCellImports()

const TSet< Verse::VCell * > & FSaveContext::GetCellImports ( ) const
inline

◆ GetCellObjectDependencies()

const TMap< Verse::VCell *, TSet< TObjectPtr< UObject > > > & FSaveContext::GetCellObjectDependencies ( ) const
inline

◆ GetCurrentHarvestingRealm()

ESaveRealm FSaveContext::GetCurrentHarvestingRealm ( ) const
inline

◆ GetCustomVersions()

const FCustomVersionContainer & FSaveContext::GetCustomVersions ( ) const
inline

◆ GetDirectImports()

const TSet< TObjectPtr< UObject > > & FSaveContext::GetDirectImports ( ) const
inline

◆ GetEditorOnlyObjectFlags()

UE::SavePackageUtilities::EEditorOnlyObjectFlags FSaveContext::GetEditorOnlyObjectFlags ( ) const

◆ GetError()

FOutputDevice * FSaveContext::GetError ( ) const
inline

◆ GetExcludedObjectMarks()

EObjectMark FSaveContext::GetExcludedObjectMarks ( ESaveRealm  HarvestingRealm) const
inline

◆ GetExports()

TSet< FTaggedExport > & FSaveContext::GetExports ( )
inline

◆ GetExternalExportValidations()

const TArray< TFunction< FSavePackageSettings::ExternalExportValidationFunc > > & FSaveContext::GetExternalExportValidations ( ) const
inline

◆ GetExternalImportValidations()

const TArray< TFunction< FSavePackageSettings::ExternalImportValidationFunc > > & FSaveContext::GetExternalImportValidations ( ) const
inline

◆ GetFilename()

const TCHAR * FSaveContext::GetFilename ( ) const
inline

◆ GetFinalResult()

FSavePackageResultStruct FSaveContext::GetFinalResult ( )

◆ GetFinalTimestamp()

const FDateTime & FSaveContext::GetFinalTimestamp ( ) const
inline

◆ GetFormatter()

FArchiveFormatterType * FSaveContext::GetFormatter ( ) const
inline

◆ GetHarvestedRealm() [1/2]

FHarvestedRealm & FSaveContext::GetHarvestedRealm ( ESaveRealm  Realm = ESaveRealm::None)
inline

◆ GetHarvestedRealm() [2/2]

const FHarvestedRealm & FSaveContext::GetHarvestedRealm ( ESaveRealm  Realm = ESaveRealm::None) const
inline

◆ GetHarvestedRealmsToSave()

TArray< ESaveRealm > FSaveContext::GetHarvestedRealmsToSave ( )

Returns which save context should be saved.

◆ GetIllegalReferences()

const TArray< FIllegalReference > & FSaveContext::GetIllegalReferences ( ) const
inline

◆ GetImports()

const TSet< TObjectPtr< UObject > > & FSaveContext::GetImports ( ) const
inline

◆ GetImportsUsedInGame()

const TSet< TObjectPtr< UObject > > & FSaveContext::GetImportsUsedInGame ( ) const
inline

◆ GetInitialPackageFlags()

uint32 FSaveContext::GetInitialPackageFlags ( ) const
inline

◆ GetLinker()

FLinkerSave * FSaveContext::GetLinker ( ) const
inline

◆ GetLinkers()

TArray< FLinkerSave * > FSaveContext::GetLinkers ( ) const
inline

◆ GetNamesReferencedFromExportData()

const TSet< FNameEntryId > & FSaveContext::GetNamesReferencedFromExportData ( ) const
inline

◆ GetNamesReferencedFromPackageHeader() [1/2]

TSet< FNameEntryId > & FSaveContext::GetNamesReferencedFromPackageHeader ( )
inline

◆ GetNamesReferencedFromPackageHeader() [2/2]

const TSet< FNameEntryId > & FSaveContext::GetNamesReferencedFromPackageHeader ( ) const
inline

◆ GetNativeObjectDependencies()

const TMap< TObjectPtr< UObject >, TSet< TObjectPtr< UObject > > > & FSaveContext::GetNativeObjectDependencies ( ) const
inline

◆ GetObjectDependencies()

const TMap< TObjectPtr< UObject >, TSet< TObjectPtr< UObject > > > & FSaveContext::GetObjectDependencies ( ) const
inline

◆ GetObjectSaveContext()

FObjectSaveContextData & FSaveContext::GetObjectSaveContext ( )
inline

◆ GetPackage()

UPackage * FSaveContext::GetPackage ( ) const
inline

◆ GetPackageBuildDependencies()

const TArray< FName > & FSaveContext::GetPackageBuildDependencies ( ESaveRealm  SaveRealm = ESaveRealm::None)
inline

◆ GetPackageValidator()

PRAGMA_DISABLE_DEPRECATION_WARNINGS ISavePackageValidator * FSaveContext::GetPackageValidator ( ) const
inline

◆ GetPackageWriter()

IPackageWriter * FSaveContext::GetPackageWriter ( ) const
inline

◆ GetPostSaveObjectsToSerialize()

const TSet< UObject * > & FSaveContext::GetPostSaveObjectsToSerialize ( ) const

◆ GetPostSaveRootRequired()

bool FSaveContext::GetPostSaveRootRequired ( ) const
inline

◆ GetPreloadDependencies()

TArray< UE::SavePackageUtilities::FPreloadDependency > & FSaveContext::GetPreloadDependencies ( )
inline

◆ GetPreSaveCleanup()

bool FSaveContext::GetPreSaveCleanup ( ) const
inline

◆ GetPrestreamPackages() [1/2]

TSet< TObjectPtr< UPackage > > & FSaveContext::GetPrestreamPackages ( )
inline

◆ GetPrestreamPackages() [2/2]

const TSet< TObjectPtr< UPackage > > & FSaveContext::GetPrestreamPackages ( ) const
inline

◆ GetSaveArgs()

const FSavePackageArgs & FSaveContext::GetSaveArgs ( ) const
inline

◆ GetSavedAssets()

TArray< FAssetData > & FSaveContext::GetSavedAssets ( )
inline

◆ GetSavePackageContext()

FSavePackageContext * FSaveContext::GetSavePackageContext ( ) const
inline

◆ GetSearchableNamesObjectMap() [1/2]

TMap< TObjectPtr< UObject >, TArray< FName > > & FSaveContext::GetSearchableNamesObjectMap ( )
inline

◆ GetSearchableNamesObjectMap() [2/2]

const TMap< TObjectPtr< UObject >, TArray< FName > > & FSaveContext::GetSearchableNamesObjectMap ( ) const
inline

◆ GetSoftObjectPathList()

const TSet< FSoftObjectPath > & FSaveContext::GetSoftObjectPathList ( ) const
inline

◆ GetSoftPackageReferenceList() [1/2]

TSet< FName > & FSaveContext::GetSoftPackageReferenceList ( )
inline

◆ GetSoftPackageReferenceList() [2/2]

const TSet< FName > & FSaveContext::GetSoftPackageReferenceList ( ) const
inline

◆ GetSoftPackagesUsedInGame() [1/2]

TSet< FName > & FSaveContext::GetSoftPackagesUsedInGame ( )
inline

◆ GetSoftPackagesUsedInGame() [2/2]

const TSet< FName > & FSaveContext::GetSoftPackagesUsedInGame ( ) const
inline

◆ GetStructuredArchive()

FStructuredArchive * FSaveContext::GetStructuredArchive ( ) const
inline

◆ GetTargetPackagePath()

const FPackagePath & FSaveContext::GetTargetPackagePath ( ) const
inline

◆ GetTargetPlatform()

const ITargetPlatform * FSaveContext::GetTargetPlatform ( ) const
inline

◆ GetTempFilename()

const TOptional< FString > & FSaveContext::GetTempFilename ( ) const
inline

◆ GetTextFormatArchive()

FArchive * FSaveContext::GetTextFormatArchive ( ) const
inline

◆ GetTextFormatTempFilename()

const TOptional< FString > & FSaveContext::GetTextFormatTempFilename ( ) const
inline

◆ GetTopLevelFlags()

EObjectFlags FSaveContext::GetTopLevelFlags ( ) const
inline

◆ GetTransientPropertyOverrides()

const TMap< UObject *, TSet< FProperty * > > & FSaveContext::GetTransientPropertyOverrides ( )
inline

◆ GetUntrackedSoftPackageReferenceList()

const TSet< FName > & FSaveContext::GetUntrackedSoftPackageReferenceList ( ) const
inline

◆ HasExternalExportValidations()

bool FSaveContext::HasExternalExportValidations ( ) const
inline

◆ HasExternalImportValidations()

PRAGMA_ENABLE_DEPRECATION_WARNINGS bool FSaveContext::HasExternalImportValidations ( ) const
inline

◆ IsConcurrent()

bool FSaveContext::IsConcurrent ( ) const
inline

◆ IsCooking()

bool FSaveContext::IsCooking ( ) const
inline

◆ IsExport()

bool FSaveContext::IsExport ( UObject InObject) const
inline

◆ IsFilterEditorOnly()

bool FSaveContext::IsFilterEditorOnly ( ) const
inline

◆ IsFixupStandaloneFlags()

bool FSaveContext::IsFixupStandaloneFlags ( ) const
inline

◆ IsForceByteSwapping()

bool FSaveContext::IsForceByteSwapping ( ) const
inline

◆ IsFromAutoSave()

bool FSaveContext::IsFromAutoSave ( ) const
inline

◆ IsGenerateSaveError()

bool FSaveContext::IsGenerateSaveError ( ) const
inline

◆ IsIgnoringHeaderDiff()

bool FSaveContext::IsIgnoringHeaderDiff ( ) const
inline

◆ IsImport()

bool FSaveContext::IsImport ( UObject InObject) const
inline

◆ IsIncluded()

bool FSaveContext::IsIncluded ( TObjectPtr< UObject InObject) const
inline

◆ IsKeepDirty()

bool FSaveContext::IsKeepDirty ( ) const
inline

◆ IsPrestreamPackage()

bool FSaveContext::IsPrestreamPackage ( TObjectPtr< UPackage InPackage) const
inline

◆ IsProceduralSave()

bool FSaveContext::IsProceduralSave ( ) const
inline

◆ IsProcessingPrestreamingRequests()

bool FSaveContext::IsProcessingPrestreamingRequests ( ) const
inline

◆ IsSaveAutoOptional()

bool FSaveContext::IsSaveAutoOptional ( ) const
inline

◆ IsSaveOptional()

bool FSaveContext::IsSaveOptional ( ) const
inline

◆ IsSaveToMemory()

bool FSaveContext::IsSaveToMemory ( ) const
inline

◆ IsSaveUnversionedNative()

bool FSaveContext::IsSaveUnversionedNative ( ) const
inline

◆ IsSaveUnversionedProperties()

bool FSaveContext::IsSaveUnversionedProperties ( ) const
inline

◆ IsStripEditorOnly()

bool FSaveContext::IsStripEditorOnly ( ) const
inline

◆ IsStubRequested()

bool FSaveContext::IsStubRequested ( ) const
inline

◆ IsTextFormat()

bool FSaveContext::IsTextFormat ( ) const
inline

◆ IsTransient() [1/2]

bool FSaveContext::IsTransient ( TObjectPtr< UObject InObject)

◆ IsTransient() [2/2]

bool FSaveContext::IsTransient ( TObjectPtr< UObject InObject,
UE::SavePackageUtilities::FObjectStatus ObjectStatus 
)

◆ IsUnsaveable()

bool FSaveContext::IsUnsaveable ( TObjectPtr< UObject InObject,
UE::SavePackageUtilities::FObjectStatus ObjectStatus,
bool  bEmitWarning = true 
)

◆ IsUpdatingLoadedPath()

bool FSaveContext::IsUpdatingLoadedPath ( ) const
inline

◆ IsUsingSlowTask()

bool FSaveContext::IsUsingSlowTask ( ) const
inline

◆ IsWarningLongFilename()

bool FSaveContext::IsWarningLongFilename ( ) const
inline

◆ NameExists()

bool FSaveContext::NameExists ( const FName Name) const
inline

◆ RecordIllegalReference()

void FSaveContext::RecordIllegalReference ( UObject InFrom,
UObject InTo,
EIllegalRefReason  InReason,
FString &&  InOptionalReasonText = FString() 
)
inline

◆ RequestStubFile()

void FSaveContext::RequestStubFile ( )
inline

◆ ResolveForSave()

UObject * FSaveContext::ResolveForSave ( TObjectPtr< UObject InObject,
UE::SavePackageUtilities::FObjectStatus Status 
)

Resolve a TObjectPtr into a raw UObject* for use during SavePackage. If the object is an import, this function avoids the normal automatic behavior of marking the object's package as a generic build dependency, and instead manually records a dependency on the PackageAndClass cook result projection, which are the only dependencies necessary for generic saving of imports.

◆ SetCustomVersions()

void FSaveContext::SetCustomVersions ( FCustomVersionContainer  InCustomVersions)
inline

◆ SetFormatter()

void FSaveContext::SetFormatter ( TUniquePtr< FArchiveFormatterType InFormatter)
inline

◆ SetLinker()

void FSaveContext::SetLinker ( TPimplPtr< FLinkerSave InLinker)
inline

◆ SetPostSaveRootRequired()

void FSaveContext::SetPostSaveRootRequired ( bool  bInPostSaveRootRequired)
inline

◆ SetPreSaveCleanup()

void FSaveContext::SetPreSaveCleanup ( bool  bInNeedPreSaveCleanup)
inline

◆ SetStructuredArchive()

void FSaveContext::SetStructuredArchive ( TUniquePtr< FStructuredArchive InArchive)
inline

◆ SetTempFilename()

void FSaveContext::SetTempFilename ( TOptional< FString >  InTemp)
inline

◆ SetTextFormatArchive()

void FSaveContext::SetTextFormatArchive ( TUniquePtr< FArchive InTextArchive)
inline

◆ SetTextFormatTempFilename()

void FSaveContext::SetTextFormatTempFilename ( TOptional< FString >  InTemp)
inline

◆ SetTransientPropertyOverrides()

void FSaveContext::SetTransientPropertyOverrides ( TMap< UObject *, TSet< FProperty * > > &&  InTransientPropertyOverrides)
inline

◆ ShouldRehydratePayloads()

bool FSaveContext::ShouldRehydratePayloads ( ) const
inline

◆ UpdateEditorRealmPackageBuildDependencies()

void FSaveContext::UpdateEditorRealmPackageBuildDependencies ( )

We copy manually-declared CookBuildDependencies from native class OnCookEvent functions into the AssetRegistry dependencies recorded for the editor save of a package. These build dependencies are used for the management database created by the AssetManager (UpdateManagementDatabase) that assigns chunks from PrimaryAssets out to all of the Assets that each PrimaryAsset depends on. We need to include CookBuildDependencies in that graph traversal because we can have some editoronly references that are read during cook to put data into the cooked version of the package that references them. We also use editoronly references to hide references that are used in game, but only on some platforms. To follow those references during the AssetManager's graph traversal, we need to report them in some other way than as used-in-game dependencies (because used-in-game dependencies would incorrectly mark them as used-in-game for all platforms). We implement that with build dependencies. See FMaterialOverrideNanite for an example of editor-only dependencies that are used-in-game on some platforms.

◆ UpdatePackageFileSize()

void FSaveContext::UpdatePackageFileSize ( int64  InFileSize)
inline

◆ UpdatePackageLinkerVersions()

void FSaveContext::UpdatePackageLinkerVersions ( )
inline

◆ UpdateSaveableStatus()

void FSaveContext::UpdateSaveableStatus ( TObjectPtr< UObject InObject,
UE::SavePackageUtilities::FObjectStatus ObjectStatus 
)

Friends And Related Symbol Documentation

◆ FPackageHarvester

friend class FPackageHarvester
friend

Member Data Documentation

◆ AdditionalFilesFromExports

TArray<FLargeMemoryWriter, TInlineAllocator<4> > FSaveContext::AdditionalFilesFromExports

◆ AdditionalPackageFiles

FSavePackageOutputFileArray FSaveContext::AdditionalPackageFiles

◆ GatherableTextResultFlags

◆ OffsetAfterExportMap

int32 FSaveContext::OffsetAfterExportMap = 0

◆ OffsetAfterImportMap

int32 FSaveContext::OffsetAfterImportMap = 0

◆ OffsetAfterPackageFileSummary

int32 FSaveContext::OffsetAfterPackageFileSummary = 0

◆ OffsetAfterPayloadToc

int64 FSaveContext::OffsetAfterPayloadToc = 0

◆ PackageHeaderAndExportSize

int64 FSaveContext::PackageHeaderAndExportSize = 0

◆ PackageSavedHash

FIoHash FSaveContext::PackageSavedHash

◆ Result

ESavePackageResult FSaveContext::Result

◆ SerializedPackageFlags

int32 FSaveContext::SerializedPackageFlags = 0

◆ TotalPackageSizeUncompressed

int64 FSaveContext::TotalPackageSizeUncompressed = 0

The documentation for this class was generated from the following files: