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

#include <LinkerSave.h>

+ Inheritance diagram for FLinkerSave:

Classes

struct  FSidecarStorageInfo
 

Public Types

using AdditionalDataCallback = TUniqueFunction< void(FLinkerSave &ExportsArchive, FArchive &DataArchive, int64 DataStartOffset)>
 

Public Member Functions

virtual ~FLinkerSave ()
 
 FLinkerSave (UPackage *InParent, const TCHAR *InFilename, bool bForceByteSwapping, bool bInSaveUnversioned=false)
 
 FLinkerSave (UPackage *InParent, bool bForceByteSwapping, bool bInSaveUnversioned=false)
 
 FLinkerSave (UPackage *InParent, FArchive *InSaver, bool bForceByteSwapping, bool bInSaveUnversioned=false)
 
 FLinkerSave (UPackage *InParent)
 
void AssignSaver (FArchive *InSaver, bool bForceByteSwapping, bool bInSaveUnversioned=false)
 
void AssignMemorySaver (bool bForceByteSwapping, bool bInSaveUnversioned=false)
 
bool TryAssignFileSaver (FStringView InFilename, bool bForceByteSwapping, bool bInSaveUnversioned=false)
 
void AssignSaveContext (FSaveContext *InContext)
 
int32 MapName (FNameEntryId Name) const
 
int32 MapSoftObjectPath (const FSoftObjectPath &SoftObjectPath) const
 
FPackageIndex MapObject (TObjectPtr< const UObject > Object, bool bValidateExcluded=true) const
 
virtual void MarkScriptSerializationStart (const UObject *Obj) override
 
virtual void MarkScriptSerializationEnd (const UObject *Obj) override
 
virtual FArchiveoperator<< (FName &InName) override
 
virtual FArchiveoperator<< (UObject *&Obj) override
 
virtual FArchiveoperator<< (FObjectPtr &Value) override
 
virtual FArchiveoperator<< (FSoftObjectPath &SoftObjectPath) override
 
virtual FArchiveoperator<< (FLazyObjectPtr &LazyObjectPtr) override
 
virtual bool ShouldSkipProperty (const FProperty *InProperty) const override
 
 UE_DEPRECATED (5.5, "GetSerializeContext is not supported. Use FUObjectThreadContext::Get().GetSerializeContext().") FUObjectSerializeContext *GetSerializeContext() override
 
virtual void UsingCustomVersion (const struct FGuid &Guid) override
 
virtual void SetUseUnversionedPropertySerialization (bool bInUseUnversioned) override
 
virtual void SetDebugSerializationFlags (uint32 InCustomFlags) override
 
virtual void SetFilterEditorOnly (bool bInFilterEditorOnly) override
 
void SetTransientPropertyOverrides (const TMap< UObject *, TSet< FProperty * > > &InTransientPropertyOverrides)
 
void SetMemoryMapAlignment (int64 InAlignment)
 
void SetFileRegionsEnabled (bool bEnabled)
 
void SetDeclareRegionForEachAdditionalFile (bool bValue)
 
void SetSaveBulkDataByReference (bool bValue)
 
void SetSaveBulkDataToSeparateFiles (bool bValue)
 
virtual FString GetArchiveName () const override
 
virtual FLinkerGetLinker ()
 
void Seek (int64 InPos)
 
int64 Tell ()
 
void Serialize (void *V, int64 Length)
 
void OnPostSave (const FPackagePath &PackagePath, FObjectPostSaveContext ObjectSaveContext)
 
void OnPostSaveBulkData ()
 
virtual void SetSerializedProperty (FProperty *InProperty) override
 
virtual void SetSerializedPropertyChain (const FArchiveSerializedPropertyChain *InSerializedPropertyChain, class FProperty *InSerializedPropertyOverride=nullptr) override
 
virtual void PushSerializedProperty (class FProperty *InProperty, const bool bIsEditorOnlyProperty) override
 
virtual void PopSerializedProperty (class FProperty *InProperty, const bool bIsEditorOnlyProperty) override
 
virtual FString GetDebugName () const override
 
bool CloseAndDestroySaver ()
 
const FString & GetFilename () const
 
void SetOutputDevice (FOutputDevice *InOutputDevice)
 
FOutputDeviceGetOutputDevice () const
 
virtual bool SerializeBulkData (FBulkData &BulkData, const FBulkDataSerializationParams &Params) override
 
void ForEachBulkDataCookedIndex (TUniqueFunction< void(FBulkDataCookedIndex, FFileRegionMemoryWriter &)> &&Func, EBulkDataPayloadType Type) const
 
FFileRegionMemoryWriterGetBulkDataArchive (FBulkDataCookedIndex CookedIndex)
 
FFileRegionMemoryWriterGetOptionalBulkDataArchive (FBulkDataCookedIndex CookedIndex)
 
FFileRegionMemoryWriterGetMemoryMappedBulkDataArchive (FBulkDataCookedIndex CookedIndex)
 
bool HasCookedIndexBulkData () const
 
FFileRegionMemoryWriterGetBulkDataArchive ()
 
FFileRegionMemoryWriterGetOptionalBulkDataArchive ()
 
FFileRegionMemoryWriterGetMemoryMappedBulkDataArchive ()
 
virtual FArchiveoperator<< (FLazyObjectPtr &Value) override
 
virtual FArchiveoperator<< (FObjectPtr &Value) override
 
virtual FArchiveoperator<< (FSoftObjectPtr &Value) override
 
virtual FArchiveoperator<< (FSoftObjectPath &Value) override
 
virtual FArchiveoperator<< (FWeakObjectPtr &Value) override
 
virtual FArchiveoperator<< (FName &Value)
 
virtual CORE_API FArchiveoperator<< (FText &Value)
 
virtual FArchiveoperator<< (UObject *&Value)
 
virtual FArchiveoperator<< (FField *&Value)
 
template<class T >
FArchiveoperator<< (TCheckedObjPtr< T > &Value)
 
virtual CORE_API FArchiveoperator<< (struct FLazyObjectPtr &Value)
 
virtual CORE_API FArchiveoperator<< (struct FObjectPtr &Value)
 
virtual CORE_API FArchiveoperator<< (struct FSoftObjectPtr &Value)
 
virtual CORE_API FArchiveoperator<< (struct FSoftObjectPath &Value)
 
virtual CORE_API FArchiveoperator<< (struct FWeakObjectPtr &Value)
 
void Serialize (FArchive &Ar)
 
- Public Member Functions inherited from FLinker
 FLinker (ELinkerType::Type InType, UPackage *InRoot)
 
virtual ~FLinker ()
 
UE_FORCEINLINE_HINT ELinkerType::Type GetType () const
 
void Serialize (FArchive &Ar)
 
COREUOBJECT_API FString GetExportPathName (int32 ExportIndex, const TCHAR *FakeRoot=nullptr, bool bResolveForcedExports=false)
 
FString GetExportPathName (FPackageIndex PackageIndex, const TCHAR *FakeRoot=nullptr, bool bResolveForcedExports=false)
 
FString GetPathName (FPackageIndex PackageIndex)
 
COREUOBJECT_API FString GetExportFullName (int32 ExportIndex, const TCHAR *FakeRoot=nullptr, bool bResolveForcedExports=false)
 
FString GetExportFullName (FPackageIndex PackageIndex, const TCHAR *FakeRoot=nullptr, bool bResolveForcedExports=false)
 
FString GetFullImpExpName (FPackageIndex PackageIndex)
 
void StartScriptSHAGeneration ()
 
void UpdateScriptSHAKey (const TArray< uint8 > &ScriptCode)
 
void GetScriptSHAKey (uint8 *OutKey)
 
bool FilterExport (const FObjectExport &Export)
 
- Public Member Functions inherited from FLinkerTables
FObjectResourceImpExp (FPackageIndex Index)
 
FObjectResource const & ImpExp (FPackageIndex Index) const
 
FObjectResourceImpExpPtr (FPackageIndex Index)
 
FObjectImportImp (FPackageIndex Index)
 
FObjectImport const & Imp (FPackageIndex Index) const
 
FObjectImportImpPtr (FPackageIndex Index)
 
FObjectExportExp (FPackageIndex Index)
 
FObjectExport const & Exp (FPackageIndex Index) const
 
FObjectExportExpPtr (FPackageIndex Index)
 
COREUOBJECT_API void SerializeSearchableNamesMap (FArchive &Ar)
 
COREUOBJECT_API void SerializeSearchableNamesMap (FStructuredArchive::FSlot Slot)
 
COREUOBJECT_API FString GetImportPathName (int32 ImportIndex)
 
FString GetImportPathName (FPackageIndex PackageIndex)
 
COREUOBJECT_API FString GetExportPathName (const FString &RootPackagePath, int32 ExportIndex, bool bResolveForcedExports=false)
 
COREUOBJECT_API FString GetImportFullName (int32 ImportIndex)
 
FString GetImportFullName (FPackageIndex PackageIndex)
 
COREUOBJECT_API FString GetExportFullName (const FString &RootPackagePath, int32 ExportIndex, bool bResolveForcedExports=false)
 
FPackageIndex ResourceGetOutermost (FPackageIndex LinkerIndex) const
 
bool ResourceIsIn (FPackageIndex LinkerIndex, FPackageIndex OuterIndex) const
 
bool DoResourcesShareOutermost (FPackageIndex LinkerIndexLHS, FPackageIndex LinkerIndexRHS) const
 
bool ImportIsInAnyExport (int32 ImportIndex) const
 
bool AnyExportIsInImport (int32 ImportIndex) const
 
bool AnyExportShareOuterWithImport (int32 ImportIndex) const
 
COREUOBJECT_API FName GetExportClassName (int32 ExportIdx)
 
FName GetExportClassName (FPackageIndex PackageIndex)
 
FName GetImportClassName (int32 ImportIdx)
 
FName GetImportClassName (FPackageIndex PackageIndex)
 
FName GetClassName (FPackageIndex PackageIndex)
 
COREUOBJECT_API SIZE_T GetAllocatedSize () const
 
- Public Member Functions inherited from FArchiveUObject
template<class T >
FArchiveoperator<< (TCheckedObjPtr< T > &Value)
 
- Public Member Functions inherited from FArchive
 FArchive ()=default
 
 FArchive (const FArchive &)=default
 
FArchiveoperator= (const FArchive &ArchiveToCopy)=default
 
virtual CORE_API ~FArchive ()
 
template<class T >
FArchiveoperator<< (TCheckedObjPtr< T > &Value)
 
virtual void ForceBlueprintFinalization ()
 
virtual void SerializeBits (void *V, int64 LengthBits)
 
virtual void SerializeInt (uint32 &Value, uint32 Max)
 
virtual CORE_API void SerializeIntPacked (uint32 &Value)
 
virtual CORE_API void SerializeIntPacked64 (uint64 &Value)
 
virtual void Preload (UObject *Object)
 
FArchiveStateGetArchiveState ()
 
const FArchiveStateGetArchiveState () const
 
virtual void AttachBulkData (UObject *Owner, FBulkData *BulkData)
 
virtual void AttachBulkData (UE::Serialization::FEditorBulkData *BulkData)
 
virtual void DetachBulkData (FBulkData *BulkData, bool bEnsureBulkDataIsLoaded)
 
virtual void DetachBulkData (UE::Serialization::FEditorBulkData *BulkData, bool bEnsureBulkDataIsLoaded)
 
virtual bool IsProxyOf (FArchive *InOther) const
 
virtual bool Precache (int64 PrecacheOffset, int64 PrecacheSize)
 
virtual void FlushCache ()
 
virtual bool SetCompressionMap (TArray< FCompressedChunk > *CompressedChunks, ECompressionFlags CompressionFlags)
 
virtual void Flush ()
 
virtual bool Close ()
 
CORE_API void SerializeCompressed (void *V, int64 Length, FName CompressionFormatCannotChange, ECompressionFlags Flags=COMPRESS_NoFlags, bool bTreatBufferAsFileReader=false)
 
CORE_API void SerializeCompressedNew (void *V, int64 Length, FName CompressionFormatToEncode, FName CompressionFormatToDecodeOldV1Files, ECompressionFlags Flags=COMPRESS_NoFlags, bool bTreatBufferAsFileReader=false, int64 *OutPartialReadLength=nullptr)
 
CORE_API void SerializeCompressedNew (void *V, int64 Length)
 
CORE_API void ByteSwap (void *V, int32 Length)
 
FArchiveByteOrderSerialize (void *V, int32 Length)
 
void StartSerializingDefaults ()
 
void StopSerializingDefaults ()
 
virtual void MarkSearchableName (const TObjectPtr< const UObject > &TypeObject, const FName &ValueName) const
 
template<typename FmtType , typename... Types>
void Logf (const FmtType &Fmt, Types... Args)
 
virtual FArchiveGetCacheableArchive ()
 
void SetCookData (FArchiveCookData *InCookData)
 
FArchiveCookDataGetCookData ()
 
virtual bool AttachExternalReadDependency (FExternalReadCallback &ReadCallback)
 
template<SIZE_T Size>
bool FastPathLoad (void *InDest)
 
virtual void PushFileRegionType (EFileRegionType Type)
 
virtual void PopFileRegionType ()
 
CORE_API void SetArchiveState (const FArchiveState &InState)
 
CORE_API void SetError ()
 
CORE_API void ClearError ()
 
CORE_API void SetCriticalError ()
 
virtual FArchiveStateGetInnermostState ()
 
virtual void CountBytes (SIZE_T InNum, SIZE_T InMax)
 
virtual int64 TotalSize ()
 
virtual bool AtEnd ()
 
bool IsByteSwapping ()
 
void ThisContainsCode ()
 
void ThisContainsMap ()
 
CORE_API void ThisRequiresLocalizationGather ()
 
virtual UObjectGetArchetypeFromLoader (const UObject *Obj)
 
UE_FORCEINLINE_HINT FPackageFileVersion UEVer () const
 
UE_FORCEINLINE_HINT int32 LicenseeUEVer () const
 
UE_FORCEINLINE_HINT FEngineVersionBase EngineVer () const
 
virtual CORE_API uint32 EngineNetVer () const
 
virtual CORE_API uint32 GameNetVer () const
 
CORE_API int32 CustomVer (const struct FGuid &Key) const
 
UE_FORCEINLINE_HINT bool IsLoading () const
 
UE_FORCEINLINE_HINT bool IsLoadingFromCookedPackage () const
 
UE_FORCEINLINE_HINT bool IsSaving () const
 
bool IsTransacting () const
 
UE_FORCEINLINE_HINT bool IsTextFormat () const
 
UE_FORCEINLINE_HINT bool WantBinaryPropertySerialization () const
 
UE_FORCEINLINE_HINT bool UseUnversionedPropertySerialization () const
 
UE_FORCEINLINE_HINT bool IsForcingUnicode () const
 
UE_FORCEINLINE_HINT bool IsPersistent () const
 
UE_FORCEINLINE_HINT bool GetError () const
 
UE_FORCEINLINE_HINT bool IsError () const
 
UE_FORCEINLINE_HINT bool IsCriticalError () const
 
UE_FORCEINLINE_HINT bool ContainsCode () const
 
UE_FORCEINLINE_HINT bool ContainsMap () const
 
bool RequiresLocalizationGather () const
 
UE_FORCEINLINE_HINT bool ForceByteSwapping () const
 
UE_FORCEINLINE_HINT bool IsSerializingDefaults () const
 
UE_FORCEINLINE_HINT bool IsIgnoringArchetypeRef () const
 
UE_FORCEINLINE_HINT bool DoDelta () const
 
UE_FORCEINLINE_HINT bool DoIntraPropertyDelta () const
 
UE_FORCEINLINE_HINT bool IsIgnoringOuterRef () const
 
UE_FORCEINLINE_HINT bool IsIgnoringClassGeneratedByRef () const
 
UE_FORCEINLINE_HINT bool IsIgnoringClassRef () const
 
UE_FORCEINLINE_HINT bool IsAllowingLazyLoading () const
 
UE_FORCEINLINE_HINT bool IsObjectReferenceCollector () const
 
UE_FORCEINLINE_HINT bool IsModifyingWeakAndStrongReferences () const
 
UE_FORCEINLINE_HINT bool IsCountingMemory () const
 
UE_FORCEINLINE_HINT uint32 GetPortFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyPortFlags (uint32 Flags) const
 
UE_FORCEINLINE_HINT bool HasAllPortFlags (uint32 Flags) const
 
uint32 GetDebugSerializationFlags () const
 
UE_FORCEINLINE_HINT bool ShouldSkipBulkData () const
 
UE_FORCEINLINE_HINT int64 GetMaxSerializeSize () const
 
virtual CORE_API const FCustomVersionContainerGetCustomVersions () const
 
virtual CORE_API void SetCustomVersions (const FCustomVersionContainer &CustomVersionContainer)
 
virtual CORE_API void ResetCustomVersions ()
 
CORE_API void SetCustomVersion (const struct FGuid &Key, int32 Version, FName FriendlyName)
 
void SetByteSwapping (bool Enabled)
 
void SetPortFlags (uint32 InPortFlags)
 
bool IsFilterEditorOnly () const
 
bool IsSavingOptionalObject () const
 
virtual void SetSavingOptionalObject (bool InSavingOptionalObject)
 
bool IsSaveGame () const
 
UE_FORCEINLINE_HINT bool IsNetArchive () const
 
UE_FORCEINLINE_HINT bool IsCooking () const
 
UE_FORCEINLINE_HINT const ITargetPlatformCookingTarget () const
 
void SetSavePackageData (FArchiveSavePackageData *InSavePackageData)
 
FArchiveSavePackageDataGetSavePackageData ()
 
UE_FORCEINLINE_HINT FArchiveCookContextGetCookContext ()
 
virtual bool UseToResolveEnumerators () const
 
UE_FORCEINLINE_HINT class FPropertyGetSerializedProperty () const
 
CORE_API void GetSerializedPropertyChain (TArray< class FProperty * > &OutProperties) const
 
UE_FORCEINLINE_HINT const FArchiveSerializedPropertyChainGetSerializedPropertyChain () const
 
virtual void SetSerializeContext (FUObjectSerializeContext *InLoadContext)
 
virtual CORE_API void Reset ()
 
virtual CORE_API void SetIsLoading (bool bInIsLoading)
 
virtual CORE_API void SetIsLoadingFromCookedPackage (bool bInIsLoadingFromCookedPackage)
 
virtual CORE_API void SetIsSaving (bool bInIsSaving)
 
virtual CORE_API void SetIsTransacting (bool bInIsTransacting)
 
virtual CORE_API void SetIsTextFormat (bool bInIsTextFormat)
 
virtual CORE_API void SetWantBinaryPropertySerialization (bool bInWantBinaryPropertySerialization)
 
virtual CORE_API void SetForceUnicode (bool bInForceUnicode)
 
virtual CORE_API void SetIsPersistent (bool bInIsPersistent)
 
virtual CORE_API void SetUEVer (FPackageFileVersion InVer)
 
virtual CORE_API void SetLicenseeUEVer (int32 InVer)
 
virtual CORE_API void SetEngineVer (const FEngineVersionBase &InVer)
 
virtual CORE_API void SetEngineNetVer (const uint32 InEngineNetVer)
 
virtual CORE_API void SetGameNetVer (const uint32 InGameNetVer)
 
UE_FORCEINLINE_HINT bool ShouldSkipCompilingAssets () const
 
CORE_API void SetShouldSkipUpdateCustomVersion (bool bShouldSkip)
 
UE_FORCEINLINE_HINT bool ShouldSkipUpdateCustomVersion () const
 
CORE_API void SetMigratingRemoteObjects (bool bMigrating)
 
UE_FORCEINLINE_HINT constexpr bool IsMigratingRemoteObjects () const
 
virtual const FUObjectMigrationContextGetMigrationContext () const
 

Static Public Member Functions

static UE_FORCEINLINE_HINT ELinkerType::Type StaticType ()
 
- Static Public Member Functions inherited from FArchiveUObject
static COREUOBJECT_API FArchiveSerializeLazyObjectPtr (FArchive &Ar, FLazyObjectPtr &Value)
 
static COREUOBJECT_API FArchiveSerializeObjectPtr (FArchive &Ar, FObjectPtr &Value)
 
static COREUOBJECT_API FArchiveSerializeSoftObjectPtr (FArchive &Ar, FSoftObjectPtr &Value)
 
static COREUOBJECT_API FArchiveSerializeSoftObjectPath (FArchive &Ar, FSoftObjectPath &Value)
 
static COREUOBJECT_API FArchiveSerializeWeakObjectPtr (FArchive &Ar, FWeakObjectPtr &Value)
 

Public Attributes

FArchiveSaver = nullptr
 
FPackageIndex CurrentlySavingExport
 
UObjectCurrentlySavingExportObject = nullptr
 
TArray< FPackageIndexDepListForErrorChecking
 
TMap< TObjectPtr< UObject >, FPackageIndexObjectIndicesMap
 
TMap< Verse::VCell *, FPackageIndexCellIndicesMap
 
TMap< const UObject *, TArray< FName > > SearchableNamesObjectMap
 
TMap< FNameEntryId, int32NameIndices
 
TMap< FSoftObjectPath, int32SoftObjectPathIndices
 
bool bIsWritingHeaderSoftObjectPaths = false
 
TArray< FFileRegionFileRegions
 
TArray< AdditionalDataCallbackAdditionalDataToAppend
 
bool bProceduralSave = false
 
bool bUpdatingLoadedPath = false
 
bool bRehydratePayloads = false
 
TArray< FSidecarStorageInfoSidecarDataToAppend
 
TUniquePtr< UE::FPackageTrailerBuilderPackageTrailerBuilder
 
TArray< TUniqueFunction< void(const FPackagePath &PackagePath, FObjectPostSaveContext ObjectSaveContext)> > PostSaveCallbacks
 
- Public Attributes inherited from FLinker
UPackageLinkerRoot
 
FPackageFileSummary Summary
 
TArray< FNameEntryIdNameMap
 
TArray< FSoftObjectPathSoftObjectPathList
 
TArray< FGatherableTextDataGatherableTextDataMap
 
TArray< FObjectDataResourceDataResourceMap
 
TMap< FPackageIndex, UE::Serialization::Private::FImportTypeHierarchyImportTypeHierarchies
 
bool FilterClientButNotServer
 
bool FilterServerButNotClient
 
class FSHA1ScriptSHA = nullptr
 
- Public Attributes inherited from FLinkerTables
TArray< FObjectImportImportMap
 
TArray< FObjectExportExportMap
 
TArray< FCellImportCellImportMap
 
TArray< FCellExportCellExportMap
 
TArray< TArray< FPackageIndex > > DependsMap
 
TArray< FNameSoftPackageReferenceList
 
TMap< FPackageIndex, TArray< FName > > SearchableNamesMap
 
- Public Attributes inherited from FArchive
FFastPathLoadBufferActiveFPLB
 
FFastPathLoadBuffer InlineFPLB
 
uint8 ArContainsCode: 1
 
uint8 ArContainsMap: 1
 
UE_DEPRECATED(5.6, "Public access to ArRequiresLocalizationGather has been deprecated - please use Ar.RequiresLocalizationGather() and Ar.ThisRequiresLocalizationGather() for getting and setting respectively.") uint8 ArRequiresLocalizationGather uint8 ArForceByteSwapping: 1
 
uint8 ArIgnoreArchetypeRef: 1
 
uint8 ArNoDelta: 1
 
uint8 ArNoIntraPropertyDelta: 1
 
uint8 ArIgnoreOuterRef: 1
 
uint8 ArIgnoreClassGeneratedByRef: 1
 
uint8 ArIgnoreClassRef: 1
 
uint8 ArAllowLazyLoading: 1
 
uint8 ArIsObjectReferenceCollector: 1
 
uint8 ArIsModifyingWeakAndStrongReferences: 1
 
uint8 ArIsCountingMemory: 1
 
uint8 ArShouldSkipBulkData: 1
 
uint8 ArIsFilterEditorOnly: 1
 
uint8 ArIsSavingOptionalObject: 1
 
uint8 ArIsSaveGame: 1
 
uint8 ArIsNetArchive: 1
 
uint8 ArUseCustomPropertyList: 1
 
int32 ArSerializingDefaults
 
uint32 ArPortFlags
 
int64 ArMaxSerializeSize
 
uint8 ArMergeOverrides: 1
 
uint8 ArPreserveArrayElements: 1
 
const struct FCustomPropertyListNodeArCustomPropertyList
 

Static Public Attributes

static COREUOBJECT_API TMap< FString, TArray< uint8 > > PackagesToScriptSHAMap
 

Protected Member Functions

void SetFilename (FStringView InFilename)
 
const TMap< FBulkDataCookedIndex, TUniquePtr< FFileRegionMemoryWriter > > & GetArchives (EBulkDataPayloadType Type) const
 
void SerializeObjectPointer (const FObjectPtr &Value)
 
void AssignSaverInternal (FArchive *InSaver, bool bForceByteSwapping, bool bInSaveUnversioned)
 
- Protected Member Functions inherited from FArchive
void SetShouldSkipCompilingAssets (bool Enabled)
 

Friends

FArchiveoperator<< (FArchive &Ar, ANSICHAR &Value)
 
FArchiveoperator<< (FArchive &Ar, WIDECHAR &Value)
 
FArchiveoperator<< (FArchive &Ar, UTF32CHAR &Value)
 
FArchiveoperator<< (FArchive &Ar, uint8 &Value)
 
FArchiveoperator<< (FArchive &Ar, int8 &Value)
 
FArchiveoperator<< (FArchive &Ar, uint16 &Value)
 
FArchiveoperator<< (FArchive &Ar, int16 &Value)
 
FArchiveoperator<< (FArchive &Ar, uint32 &Value)
 
FArchiveoperator<< (FArchive &Ar, bool &D)
 
FArchiveoperator<< (FArchive &Ar, int32 &Value)
 
FArchiveoperator<< (FArchive &Ar, float &Value)
 
FArchiveoperator<< (FArchive &Ar, double &Value)
 
FArchiveoperator<< (FArchive &Ar, uint64 &Value)
 
FArchiveoperator<< (FArchive &Ar, int64 &Value)
 
CORE_API FArchiveoperator<< (FArchive &Ar, FString &Value)
 

Additional Inherited Members

- Static Protected Member Functions inherited from FArchive
static CORE_API void LinkProxy (FArchiveState &Inner, FArchiveState &Proxy)
 
static CORE_API void UnlinkProxy (FArchiveState &Inner, FArchiveState &Proxy)
 

Detailed Description

Handles saving Unreal package files.

Member Typedef Documentation

◆ AdditionalDataCallback

Callback for arbitrary serializers to append data to the end of the ExportsArchive. Some PackageWriters used by SavePackage will write this data to a separate archive.

Parameters
ExportsArchiveThe archive containing the UObjects and structs, this is always this LinkerSave.
DataArchiveThe archive to which the data should be written. Might be this LinkerSave, or might be a separate archive.
DataStartOffsetThe offset to the beginning of the range in DataArchive that should be stored in the UObject or struct's export data. Reading at DataStartOffset from the FArchive passed into Serialize during a load will return the data that the callback wrote to DataArchive.

Constructor & Destructor Documentation

◆ ~FLinkerSave()

FLinkerSave::~FLinkerSave ( )
virtual

◆ FLinkerSave() [1/4]

FLinkerSave::FLinkerSave ( UPackage InParent,
const TCHAR InFilename,
bool  bForceByteSwapping,
bool  bInSaveUnversioned = false 
)

Constructor for file writer

◆ FLinkerSave() [2/4]

FLinkerSave::FLinkerSave ( UPackage InParent,
bool  bForceByteSwapping,
bool  bInSaveUnversioned = false 
)

Constructor for memory writer

◆ FLinkerSave() [3/4]

FLinkerSave::FLinkerSave ( UPackage InParent,
FArchive InSaver,
bool  bForceByteSwapping,
bool  bInSaveUnversioned = false 
)

Constructor for custom savers. The linker assumes ownership of the custom saver.

◆ FLinkerSave() [4/4]

PRAGMA_ENABLE_DEPRECATION_WARNINGS FLinkerSave::FLinkerSave ( UPackage InParent)
explicit

Partially construct the FLinkerSave. No FArchive functions may be called on *this until AssignSaver has been called with a non-null FArchive.

Member Function Documentation

◆ AssignMemorySaver()

void FLinkerSave::AssignMemorySaver ( bool  bForceByteSwapping,
bool  bInSaveUnversioned = false 
)

Construct a FMemoryWriter archive and call AssignSaver with it.

See also
AssignSaver.

◆ AssignSaveContext()

void FLinkerSave::AssignSaveContext ( FSaveContext InContext)
inline

Assign the temporary save context with the linker

◆ AssignSaver()

void FLinkerSave::AssignSaver ( FArchive InSaver,
bool  bForceByteSwapping,
bool  bInSaveUnversioned = false 
)

Assign the Saver that will receive the binary data for the package and write it to disk/memory/unspecified. Must be called only once, after construction and before any calls to FArchive functions on this. Takes ownership of the given archive, and deletes it in CloseAndDestroySaver or destructor.

Parameters
bForceByteSwappingPassed to FArchive::IsByteSwapping
bInSaveUnversionedPassed to FPackageFileSummary::bUnversioned, which if true removes native versioning and custom versions from the saved package. Used for cooked packages, which exactly match native runtime version.

◆ AssignSaverInternal()

void FLinkerSave::AssignSaverInternal ( FArchive InSaver,
bool  bForceByteSwapping,
bool  bInSaveUnversioned 
)
protected

◆ CloseAndDestroySaver()

bool FLinkerSave::CloseAndDestroySaver ( )

Closes and deletes the Saver (file, memory or custom writer) which will close any associated file handle. Returns false if the owned saver contains errors after closing it, true otherwise.

◆ ForEachBulkDataCookedIndex()

void FLinkerSave::ForEachBulkDataCookedIndex ( TUniqueFunction< void(FBulkDataCookedIndex, FFileRegionMemoryWriter &)> &&  Func,
EBulkDataPayloadType  Type 
) const

◆ GetArchiveName()

FString FLinkerSave::GetArchiveName ( ) const
overridevirtual

Returns the name of the Archive. Useful for getting the name of the package a struct or object is in when a loading error occurs.

This is overridden for the specific Archive Types

Reimplemented from FArchive.

◆ GetArchives()

const TMap< FBulkDataCookedIndex, TUniquePtr< FFileRegionMemoryWriter > > & FLinkerSave::GetArchives ( EBulkDataPayloadType  Type) const
protected

◆ GetBulkDataArchive() [1/2]

FFileRegionMemoryWriter & FLinkerSave::GetBulkDataArchive ( )
inline

◆ GetBulkDataArchive() [2/2]

FFileRegionMemoryWriter & FLinkerSave::GetBulkDataArchive ( FBulkDataCookedIndex  CookedIndex)

◆ GetDebugName()

FString FLinkerSave::GetDebugName ( ) const
overridevirtual

Returns a descriptor of the PackagePath this Linker is reading from or writing to, usable for an identifier in warning and log messages

Reimplemented from FLinker.

◆ GetFilename()

const FString & FLinkerSave::GetFilename ( ) const

Get the filename being saved to

◆ GetLinker()

virtual FLinker * FLinkerSave::GetLinker ( )
inlinevirtual

If this archive is a FLinkerLoad or FLinkerSave, returns a pointer to the FLinker portion.

Reimplemented from FArchive.

◆ GetMemoryMappedBulkDataArchive() [1/2]

FFileRegionMemoryWriter & FLinkerSave::GetMemoryMappedBulkDataArchive ( )
inline

◆ GetMemoryMappedBulkDataArchive() [2/2]

FFileRegionMemoryWriter & FLinkerSave::GetMemoryMappedBulkDataArchive ( FBulkDataCookedIndex  CookedIndex)

◆ GetOptionalBulkDataArchive() [1/2]

FFileRegionMemoryWriter & FLinkerSave::GetOptionalBulkDataArchive ( )
inline

◆ GetOptionalBulkDataArchive() [2/2]

FFileRegionMemoryWriter & FLinkerSave::GetOptionalBulkDataArchive ( FBulkDataCookedIndex  CookedIndex)

◆ GetOutputDevice()

FOutputDevice * FLinkerSave::GetOutputDevice ( ) const
inline

◆ HasCookedIndexBulkData()

bool FLinkerSave::HasCookedIndexBulkData ( ) const

◆ MapName()

int32 FLinkerSave::MapName ( FNameEntryId  Name) const

Returns the appropriate name index for the source name, or INDEX_NONE if not found in NameIndices

◆ MapObject()

FPackageIndex FLinkerSave::MapObject ( TObjectPtr< const UObject Object,
bool  bValidateExcluded = true 
) const

Returns the appropriate package index for the source object, or default value if not found in ObjectIndicesMap

◆ MapSoftObjectPath()

int32 FLinkerSave::MapSoftObjectPath ( const FSoftObjectPath SoftObjectPath) const

Returns the appropriate soft object path index for the source soft object path, or INDEX_NONE if not found.

◆ MarkScriptSerializationEnd()

void FLinkerSave::MarkScriptSerializationEnd ( const UObject Obj)
overridevirtual

Called when an object stops serializing property data using script serialization.

Reimplemented from FArchive.

◆ MarkScriptSerializationStart()

void FLinkerSave::MarkScriptSerializationStart ( const UObject Obj)
overridevirtual

Called when an object begins serializing property data using script serialization.

Reimplemented from FArchive.

◆ OnPostSave()

void FLinkerSave::OnPostSave ( const FPackagePath PackagePath,
FObjectPostSaveContext  ObjectSaveContext 
)

Invoke all of the callbacks in PostSaveCallbacks and then empty it.

◆ OnPostSaveBulkData()

void FLinkerSave::OnPostSaveBulkData ( )

Triggered after bulk data payloads has been serialized to disk/package writer.

◆ operator<<() [1/20]

virtual FArchive & FArchive::operator<< ( FField *&  Value)
inlinevirtual

Serializes a Field value from or into this archive.

This operator can be implemented by sub-classes that wish to serialize UObject instances.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [2/20]

FArchive & FLinkerSave::operator<< ( FLazyObjectPtr Value)
overridevirtual

Serializes a lazy object pointer value from or into this archive.

Most of the time, FLazyObjectPtrs are serialized as UObject*, but some archives need to override this.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [3/20]

virtual FArchive & FArchiveUObject::operator<< ( FLazyObjectPtr Value)
inlineoverridevirtual

Serializes a lazy object pointer value from or into this archive.

Most of the time, FLazyObjectPtrs are serialized as UObject*, but some archives need to override this.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [4/20]

FArchive & FLinkerSave::operator<< ( FName Value)
overridevirtual

Serializes an FName value from or into this archive.

This operator can be implemented by sub-classes that wish to serialize FName instances.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [5/20]

virtual FArchive & FArchive::operator<< ( FName Value)
inlinevirtual

Serializes an FName value from or into this archive.

This operator can be implemented by sub-classes that wish to serialize FName instances.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [6/20]

virtual FArchive & FArchiveUObject::operator<< ( FObjectPtr Value)
inlineoverridevirtual

Serializes a wrapped object pointer value from or into this archive.

Most of the time, FObjectPtrs are serialized as UObject*, but some archives need to override this.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [7/20]

FArchive & FLinkerSave::operator<< ( FObjectPtr Value)
overridevirtual

Serializes a wrapped object pointer value from or into this archive.

Most of the time, FObjectPtrs are serialized as UObject*, but some archives need to override this.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [8/20]

FArchive & FLinkerSave::operator<< ( FSoftObjectPath Value)
overridevirtual

Serializes soft object paths from or into this archive.

Parameters
ValueSoft object path to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [9/20]

virtual FArchive & FArchiveUObject::operator<< ( FSoftObjectPath Value)
inlineoverridevirtual

Serializes soft object paths from or into this archive.

Parameters
ValueSoft object path to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [10/20]

virtual FArchive & FArchiveUObject::operator<< ( FSoftObjectPtr Value)
inlineoverridevirtual

Serializes asset pointer from or into this archive.

Most of the time, FSoftObjectPtr are serialized as UObject *, but some archives need to override this.

Parameters
ValueThe asset pointer to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [11/20]

FArchive & FArchive::operator<< ( FText Value)
virtual

Serializes an FText value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

Reimplemented from FArchiveUObject.

◆ operator<<() [12/20]

virtual FArchive & FArchiveUObject::operator<< ( FWeakObjectPtr Value)
inlineoverridevirtual

Serializes FWeakObjectPtr value from or into this archive.

This operator can be implemented by sub-classes that wish to serialize FWeakObjectPtr instances.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [13/20]

FArchive & FArchive::operator<< ( struct FLazyObjectPtr Value)
virtual

Serializes a lazy object pointer value from or into this archive.

Most of the time, FLazyObjectPtrs are serialized as UObject*, but some archives need to override this.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [14/20]

FArchive & FArchive::operator<< ( struct FObjectPtr Value)
virtual

Serializes a wrapped object pointer value from or into this archive.

Most of the time, FObjectPtrs are serialized as UObject*, but some archives need to override this.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [15/20]

FArchive & FArchive::operator<< ( struct FSoftObjectPath Value)
virtual

Serializes soft object paths from or into this archive.

Parameters
ValueSoft object path to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [16/20]

FArchive & FArchive::operator<< ( struct FSoftObjectPtr Value)
virtual

Serializes asset pointer from or into this archive.

Most of the time, FSoftObjectPtr are serialized as UObject *, but some archives need to override this.

Parameters
ValueThe asset pointer to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [17/20]

FArchive & FArchive::operator<< ( struct FWeakObjectPtr Value)
virtual

Serializes FWeakObjectPtr value from or into this archive.

This operator can be implemented by sub-classes that wish to serialize FWeakObjectPtr instances.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [18/20]

template<class T >
FArchive & FArchive::operator<< ( TCheckedObjPtr< T > &  Value)
inline

Serializes a UObject wrapped in a TCheckedObjPtr container, using the above operator, and verifies the serialized object is derived from the correct base class, to prevent illegal casting.

Parameters
ValueThe value to serialize.
Returns
This instance.

◆ operator<<() [19/20]

FArchive & FLinkerSave::operator<< ( UObject *&  Value)
overridevirtual

Serializes an UObject value from or into this archive.

This operator can be implemented by sub-classes that wish to serialize UObject instances.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ operator<<() [20/20]

virtual FArchive & FArchive::operator<< ( UObject *&  Value)
inlinevirtual

Serializes an UObject value from or into this archive.

This operator can be implemented by sub-classes that wish to serialize UObject instances.

Parameters
ValueThe value to serialize.
Returns
This instance.

Reimplemented from FArchiveUObject.

◆ PopSerializedProperty()

void FLinkerSave::PopSerializedProperty ( class FProperty InProperty,
const bool  bIsEditorOnlyProperty 
)
overridevirtual

Pop a property that was previously being serialized off the property stack

Parameters
InPropertyPointer to the property that was previously being serialized
bIsEditorOnlyPropertyTrue if the property is editor only (call FProperty::IsEditorOnlyProperty to work this out, as the archive can't since it can't access CoreUObject types)

Reimplemented from FArchive.

◆ PushSerializedProperty()

void FLinkerSave::PushSerializedProperty ( class FProperty InProperty,
const bool  bIsEditorOnlyProperty 
)
overridevirtual

Push a property that is currently being serialized onto the property stack

Parameters
InPropertyPointer to the property that is currently being serialized
bIsEditorOnlyPropertyTrue if the property is editor only (call FProperty::IsEditorOnlyProperty to work this out, as the archive can't since it can't access CoreUObject types)

Reimplemented from FArchive.

◆ Seek()

void FLinkerSave::Seek ( int64  InPos)
virtual

Attempts to set the current offset into backing data storage, this will do nothing if there is no storage.

Reimplemented from FArchive.

◆ Serialize() [1/2]

void FLinker::Serialize ( FArchive Ar)

I/O function

Parameters
Arthe archive to read/write into

◆ Serialize() [2/2]

void FLinkerSave::Serialize ( void V,
int64  Length 
)
virtual

Reimplemented from FArchive.

◆ SerializeBulkData()

bool FLinkerSave::SerializeBulkData ( FBulkData BulkData,
const FBulkDataSerializationParams Params 
)
overridevirtual

Serialize bulk data.

Parameters
BulkDataBulk data object to serialize
ParamsSerialization parameters
Returns
true if the bulk data was serialized, false to fallback to default serialization (inline)

Reimplemented from FArchive.

◆ SerializeObjectPointer()

void FLinkerSave::SerializeObjectPointer ( const FObjectPtr Value)
protected

◆ SetDebugSerializationFlags()

void FLinkerSave::SetDebugSerializationFlags ( uint32  InCustomFlags)
overridevirtual

Sets the archives custom serialization modifier flags (nothing to do with PortFlags or Custom versions)

Parameters
InCustomFlagsthe new flags to use for custom serialization

Reimplemented from FArchive.

◆ SetDeclareRegionForEachAdditionalFile()

void FLinkerSave::SetDeclareRegionForEachAdditionalFile ( bool  bValue)
inline

Sets whether a separate file regions should be declared for each bulkdata

◆ SetFilename()

void FLinkerSave::SetFilename ( FStringView  InFilename)
protected

Set the filename being saved to

◆ SetFileRegionsEnabled()

void FLinkerSave::SetFileRegionsEnabled ( bool  bEnabled)
inline

Sets whether file regions will be written or not.

◆ SetFilterEditorOnly()

void FLinkerSave::SetFilterEditorOnly ( bool  InFilterEditorOnly)
overridevirtual

Sets a flag indicating that this archive needs to filter editor-only content.

Parameters
InFilterEditorOnlyWhether to filter editor-only content.

Reimplemented from FArchive.

◆ SetMemoryMapAlignment()

void FLinkerSave::SetMemoryMapAlignment ( int64  InAlignment)
inline

Set target platform memory map alignment. A negative value disables memory mapped bulk data.

◆ SetOutputDevice()

void FLinkerSave::SetOutputDevice ( FOutputDevice InOutputDevice)
inline

◆ SetSaveBulkDataByReference()

void FLinkerSave::SetSaveBulkDataByReference ( bool  bValue)
inline

Sets whether saving bulk data by reference, i.e. leaving the bulk data payload in the original .uasset file when using EditorDomain.

◆ SetSaveBulkDataToSeparateFiles()

void FLinkerSave::SetSaveBulkDataToSeparateFiles ( bool  bValue)
inline

Sets whether bulk data will be stored in the Linker archive (.uasset) or in sepearate files (.ubulk, .m.ubulk, .opt.ubulk) .

◆ SetSerializedProperty()

void FLinkerSave::SetSerializedProperty ( FProperty InProperty)
overridevirtual

Overrides the property that is currently being serialized

Note
: You likely want to call PushSerializedProperty/PopSerializedProperty instead
Parameters
InPropertyPointer to the property that is currently being serialized

Reimplemented from FArchive.

◆ SetSerializedPropertyChain()

void FLinkerSave::SetSerializedPropertyChain ( const FArchiveSerializedPropertyChain InSerializedPropertyChain,
class FProperty InSerializedPropertyOverride = nullptr 
)
overridevirtual

Set the raw serialized property chain for this archive, optionally overriding the serialized property too (or null to use the head of the property chain)

Reimplemented from FArchive.

◆ SetTransientPropertyOverrides()

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

Sets the map of overrided properties for each export that should be treated as transient, and nulled out when serializing

◆ SetUseUnversionedPropertySerialization()

void FLinkerSave::SetUseUnversionedPropertySerialization ( bool  bInUseUnversioned)
overridevirtual

Sets whether tagged property serialization should be replaced by faster unversioned serialization. This assumes writer and reader share the same property definitions.

Reimplemented from FArchive.

◆ ShouldSkipProperty()

bool FLinkerSave::ShouldSkipProperty ( const FProperty InProperty) const
overridevirtual

Checks whether the archive wants to skip the property independent of the other flags

Reimplemented from FArchive.

◆ StaticType()

static UE_FORCEINLINE_HINT ELinkerType::Type FLinkerSave::StaticType ( )
inlinestatic

◆ Tell()

int64 FLinkerSave::Tell ( )
virtual

Returns the current location within the backing data storage, which can possibly be passed to Seek later to restore a read/write location. If this returns -1, there is no backing data storage and Seek will not function.

Reimplemented from FArchive.

◆ TryAssignFileSaver()

bool FLinkerSave::TryAssignFileSaver ( FStringView  InFilename,
bool  bForceByteSwapping,
bool  bInSaveUnversioned = false 
)

Construct a file saver from IPlatformFile and call AssignSaver with it.

See also
AssignSaver. If the file write fails, the Saver will be set to nullptr and it is a fatal error to call FArchive functions on *this. Caller must handle returnvalue == false and if so destroy *this without calling FArchive functions.
Returns
Whether the creation of the Saver archive succeeded.

◆ UE_DEPRECATED()

FLinkerSave::UE_DEPRECATED ( 5.  5,
"GetSerializeContext is not supported. Use FUObjectThreadContext::Get().GetSerializeContext()."   
)
override

◆ UsingCustomVersion()

void FLinkerSave::UsingCustomVersion ( const struct FGuid Guid)
overridevirtual

Registers the custom version to the archive. This is used to inform the archive that custom version information is about to be stored. There is no effect when the archive is being loaded from.

Parameters
GuidThe guid of the custom version. This must have previously been registered with FCustomVersionRegistration.

Reimplemented from FArchive.

Friends And Related Symbol Documentation

◆ operator<< [1/15]

FArchive & operator<< ( FArchive Ar,
ANSICHAR Value 
)
friend

Serializes an ANSICHAR value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [2/15]

FArchive & operator<< ( FArchive Ar,
bool D 
)
friend

Serializes a Boolean value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [3/15]

FArchive & operator<< ( FArchive Ar,
double Value 
)
friend

Serializes a double precision floating point value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [4/15]

FArchive & operator<< ( FArchive Ar,
float Value 
)
friend

Serializes a single precision floating point value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [5/15]

CORE_API FArchive & operator<< ( FArchive Ar,
FString &  Value 
)
friend

Serializes an FString value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [6/15]

FArchive & operator<< ( FArchive Ar,
int16 Value 
)
friend

Serializes a signed 16-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [7/15]

FArchive & operator<< ( FArchive Ar,
int32 Value 
)
friend

Serializes a signed 32-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [8/15]

FArchive & operator<< ( FArchive Ar,
int64 Value 
)
friend

Serializes a signed 64-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [9/15]

FArchive & operator<< ( FArchive Ar,
int8 Value 
)
friend

Serializes a signed 8-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [10/15]

FArchive & operator<< ( FArchive Ar,
uint16 Value 
)
friend

Serializes an unsigned 16-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [11/15]

FArchive & operator<< ( FArchive Ar,
uint32 Value 
)
friend

Serializes an unsigned 32-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [12/15]

FArchive & operator<< ( FArchive Ar,
uint64 Value 
)
friend

Serializes a unsigned 64-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [13/15]

FArchive & operator<< ( FArchive Ar,
uint8 Value 
)
friend

Serializes an unsigned 8-bit integer value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [14/15]

FArchive & operator<< ( FArchive Ar,
UTF32CHAR Value 
)
friend

Serializes a UTF32CHAR value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

◆ operator<< [15/15]

FArchive & operator<< ( FArchive Ar,
WIDECHAR Value 
)
friend

Serializes a WIDECHAR value from or into an archive.

Parameters
ArThe archive to serialize from or to.
ValueThe value to serialize.

Member Data Documentation

◆ AdditionalDataToAppend

TArray<AdditionalDataCallback> FLinkerSave::AdditionalDataToAppend

Array of callbacks that will be invoked when it is possible to serialize out data to the end of the output file.

◆ bIsWritingHeaderSoftObjectPaths

bool FLinkerSave::bIsWritingHeaderSoftObjectPaths = false

Flag that indicate if we are currently serializing the package header soft object paths. Used to disable mapping while serializing the header itself.

◆ bProceduralSave

bool FLinkerSave::bProceduralSave = false

Set to true when the package is being saved due to a procedural save. Any save without the the possibility of user-generated edits to the package is a procedural save (Cooking, EditorDomain). This allows us to execute transforms that only need to be executed in response to new user data.

◆ bRehydratePayloads

bool FLinkerSave::bRehydratePayloads = false

When set to true, payloads that are currently virtualized should be downloaded and stored locally with the package

◆ bUpdatingLoadedPath

bool FLinkerSave::bUpdatingLoadedPath = false

Set to true when the LoadedPath of the package being saved is being updated. This allows us to update the in-memory package when it is saved in editor to match its new save file. This is used e.g. to decide whether to update the in-memory file offsets for BulkData.

◆ CellIndicesMap

TMap<Verse::VCell*, FPackageIndex> FLinkerSave::CellIndicesMap

◆ CurrentlySavingExport

FPackageIndex FLinkerSave::CurrentlySavingExport

◆ CurrentlySavingExportObject

UObject* FLinkerSave::CurrentlySavingExportObject = nullptr

◆ DepListForErrorChecking

TArray<FPackageIndex> FLinkerSave::DepListForErrorChecking

◆ FileRegions

TArray<FFileRegion> FLinkerSave::FileRegions

◆ NameIndices

TMap<FNameEntryId, int32> FLinkerSave::NameIndices

◆ ObjectIndicesMap

TMap<TObjectPtr<UObject>, FPackageIndex> FLinkerSave::ObjectIndicesMap

Index array - location of the resource for a UObject is stored in the ObjectIndices array using the UObject's Index

◆ PackagesToScriptSHAMap

PRAGMA_DISABLE_DEPRECATION_WARNINGS TMap< FString, TArray< uint8 > > FLinkerSave::PackagesToScriptSHAMap
static

A mapping of package name to generated script SHA keys

◆ PackageTrailerBuilder

TUniquePtr<UE::FPackageTrailerBuilder> FLinkerSave::PackageTrailerBuilder

Gathers all payloads while save the package, so that they can be stored in a single data structure

See also
FPackageTrailer

◆ PostSaveCallbacks

TArray<TUniqueFunction<void(const FPackagePath& PackagePath, FObjectPostSaveContext ObjectSaveContext)> > FLinkerSave::PostSaveCallbacks

Array of callbacks that will be invoked when the package has successfully saved to disk. The callbacks will not be invoked if the package fails to save for some reason. Unlike subscribing to the UPackage::PackageSavedEvent this callback allows custom data via lambda capture.

Parameters
PackagePathThe path of the package

◆ Saver

FArchive* FLinkerSave::Saver = nullptr

The archive that actually writes the data to disk.

◆ SearchableNamesObjectMap

TMap<const UObject *, TArray<FName> > FLinkerSave::SearchableNamesObjectMap

List of Searchable Names, by object containing them. This gets turned into package indices later

◆ SidecarDataToAppend

TArray<FSidecarStorageInfo> FLinkerSave::SidecarDataToAppend

Used by FEditorBulkData to add payloads to be added to the payload sidecar file (currently an experimental feature)

◆ SoftObjectPathIndices

TMap<FSoftObjectPath, int32> FLinkerSave::SoftObjectPathIndices

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