UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FLinkerLoad Class Referencefinal

#include <LinkerLoad.h>

+ Inheritance diagram for FLinkerLoad:

Public Member Functions

virtual ~FLinkerLoad ()
 
UE_FORCEINLINE_HINT FAsyncArchiveGetAsyncLoader ()
 
virtual FString GetDebugName () const override
 
const FPackagePathGetPackagePath () const
 
UE_FORCEINLINE_HINT const FLinkerInstancingContextGetInstancingContext () const
 
const UE::FPackageTrailerGetPackageTrailer () const
 
FArchiveGetLoader_Unsafe () const
 
bool HasLoader () const
 
void DestroyLoader ()
 
COREUOBJECT_API void DetachLoader ()
 
UE_FORCEINLINE_HINT bool IsDestroyingLoader () const
 
COREUOBJECT_API bool HasAnyObjectsPendingLoad () const
 
virtual bool SerializeBulkData (FBulkData &BulkData, const FBulkDataSerializationParams &Params) override
 
bool IsValidPackageIndex (FPackageIndex InIndex)
 
COREUOBJECT_API bool FindImportPackage (FName PackageName, FPackageIndex &PackageIdx)
 
COREUOBJECT_API bool FindImport (FPackageIndex OuterIndex, FName ObjectName, FPackageIndex &OutObjectIndex)
 
COREUOBJECT_API bool FindImport (FStringView FullObjectPath, FPackageIndex &OutObjectIndex)
 
COREUOBJECT_API bool FindImportClassAndPackage (FName ClassName, FPackageIndex &ClassIdx, FPackageIndex &PackageIdx)
 
COREUOBJECT_API bool CreateImportClassAndPackage (FName ClassName, FName PackageName, FPackageIndex &ClassIdx, FPackageIndex &PackageIdx)
 
COREUOBJECT_API ELinkerStatus FixupExportMap ()
 
UE_FORCEINLINE_HINT bool HasFinishedInitialization () const
 
UE_FORCEINLINE_HINT int32 GetOwnerThreadId () const
 
virtual FLinkerGetLinker () override
 
virtual void FlushCache () override
 
void Verify ()
 
COREUOBJECT_API FName GetExportClassPackage (int32 i)
 
virtual FString GetArchiveName () const override
 
EVerifyResult VerifyImport (int32 ImportIndex)
 
COREUOBJECT_API void LoadAllObjects (bool bForcePreload)
 
FName ResolveResourceName (FPackageIndex ResourceIndex)
 
UObjectResolveResource (FPackageIndex ResourceIndex)
 
int32 FindExportIndex (FName ClassName, FName ClassPackage, FName ObjectName, FPackageIndex ExportOuterIndex)
 
COREUOBJECT_API void Preload (UObject *Object) override
 
UObjectFindExistingExport (int32 ExportIndex)
 
UObjectFindExistingImport (int32 ImportIndex)
 
void BuildPathName (FString &OutPathName, FPackageIndex ExportIndex) const
 
COREUOBJECT_API bool WillTextureBeLoaded (UClass *Class, int32 ExportIndex)
 
virtual void MarkScriptSerializationStart (const UObject *Obj) override
 
virtual void MarkScriptSerializationEnd (const UObject *Obj) override
 
virtual UObjectGetArchetypeFromLoader (const UObject *Obj) override
 
COREUOBJECT_API void PRIVATE_PatchNewObjectIntoExport (int32 OldExportIndex, UObject *NewObject, FUObjectSerializeContext *InLoadContext=nullptr, bool bHideGarbageObjects=true)
 
virtual bool AttachExternalReadDependency (FExternalReadCallback &ReadCallback) override
 
bool FinishExternalReadDependencies (double TimeLimit)
 
COREUOBJECT_API void LoadAndDetachAllBulkData ()
 
COREUOBJECT_API void Detach ()
 
COREUOBJECT_API void DetachExports ()
 
bool ShouldRegenerateGuids () const
 
COREUOBJECT_API ELinkerStatus SerializeGatherableTextDataMap (bool bForceEnableForCommandlet=false)
 
COREUOBJECT_API ELinkerStatus SerializeThumbnails (bool bForceEnableForCommandlet=false)
 
virtual void ForceBlueprintFinalization () override
 
bool IsBlueprintFinalizationPending () const
 
UObjectRequestPlaceholderValue (const FProperty *Property, const UClass *ObjectType, const TCHAR *ObjectPath)
 
 UE_DEPRECATED (5.5, "GetSerializeContext is not supported. Use FUObjectThreadContext::Get().GetSerializeContext().") COREUOBJECT_API virtual FUObjectSerializeContext *GetSerializeContext() override
 
- 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 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)
 
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 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 CORE_API void UsingCustomVersion (const struct FGuid &Guid)
 
virtual FArchiveGetCacheableArchive ()
 
void SetCookData (FArchiveCookData *InCookData)
 
FArchiveCookDataGetCookData ()
 
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 bool AtEnd ()
 
bool IsByteSwapping ()
 
void ThisContainsCode ()
 
void ThisContainsMap ()
 
CORE_API void ThisRequiresLocalizationGather ()
 
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
 
virtual void SetFilterEditorOnly (bool InFilterEditorOnly)
 
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
 
virtual bool ShouldSkipProperty (const FProperty *InProperty) 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 SetUseUnversionedPropertySerialization (bool bInUseUnversioned)
 
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 UE_FORCEINLINE_HINT int32 GetHashBucket (FName Object)
 
static COREUOBJECT_API TArray< FNameFindPreviousNamesForClass (const FString &CurrentClassPath, bool bIsInstance)
 
static COREUOBJECT_API TArray< FString > FindPreviousPathNamesForClass (const FString &CurrentClassPath, bool bIsInstance, bool bIncludeShortNames=false)
 
static COREUOBJECT_API FName FindNewNameForClass (FName OldClassName, bool bIsInstance)
 
static COREUOBJECT_API FString FindNewPathNameForClass (const FString &OldClassNameOrPathName, bool bIsInstance)
 
static COREUOBJECT_API FName FindNewNameForEnum (FName OldEnumName)
 
static COREUOBJECT_API FName FindNewNameForStruct (FName OldStructName)
 
static COREUOBJECT_API bool IsKnownMissingPackage (FName PackageName)
 
static COREUOBJECT_API void AddKnownMissingPackage (FName PackageName)
 
static COREUOBJECT_API bool RemoveKnownMissingPackage (FName PackageName)
 
static bool IsImportLazyLoadEnabled ()
 
static COREUOBJECT_API void OnNewFileAdded (const FString &Filename)
 
static COREUOBJECT_API void OnPakFileMounted (const IPakFile &PakFile)
 
static COREUOBJECT_API void AddGameNameRedirect (const FName OldName, const FName NewName)
 
static void CreateActiveRedirectsMap (const FString &GEngineIniName)
 
static COREUOBJECT_API FLinkerLoadCreateLinker (FUObjectSerializeContext *LoadContext, UPackage *Parent, const FPackagePath &PackagePath, uint32 LoadFlags, FArchive *InLoader=nullptr, const FLinkerInstancingContext *InstancingContext=nullptr)
 
static COREUOBJECT_API FLinkerLoadFindExistingLinkerForPackage (const UPackage *Package)
 
static COREUOBJECT_API void PRIVATE_PatchNewObjectIntoExport (UObject *OldObject, UObject *NewObject, FUObjectSerializeContext *InLoadContext=nullptr, bool bHideGarbageObjects=true)
 
static COREUOBJECT_API void PRIVATE_ForceLoadAllDependencies (UPackage *Package)
 
static COREUOBJECT_API void InvalidateExport (UObject *OldObject, bool bHideGarbageObjects=true)
 
- 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

uint32 LoadFlags
 
bool bHaveImportsBeenVerified
 
UObjectTemplateForGetArchetypeFromLoader
 
bool bForceSimpleIndexToObject
 
bool bLockoutLegacyOperations
 
UE::FRecursiveMutex Mutex
 
bool bIsAsyncLoader
 
voidAsyncRoot
 
TUniquePtr< int32[]> ExportHash
 
TArray< FPackageIndexPreloadDependencies
 
TArray< FExternalReadCallbackExternalReadDependencies
 
- 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 constexpr int32 ExportHashCount = 256
 

Protected Types

enum  ELinkerStatus { LINKER_Failed = 0 , LINKER_Loaded = 1 , LINKER_TimedOut = 2 }
 
enum  EVerifyResult { VERIFY_Failed = 0 , VERIFY_Success = 1 , VERIFY_Redirected = 2 }
 

Protected Member Functions

void SetLoader (FArchive *InLoader, bool bInLoaderNeedsEngineVersionChecks)
 
FArchiveGetLoader () const
 
ELinkerStatus Tick (float InTimeLimit, bool bInUseTimeLimit, bool bInUseFullTimeLimit, TMap< TPair< FName, FPackageIndex >, FPackageIndex > *ObjectNameWithOuterToExportMap)
 
 FLinkerLoad (UPackage *InParent, const FPackagePath &PackagePath, uint32 InLoadFlags, FLinkerInstancingContext InstancingContext=FLinkerInstancingContext())
 
ELinkerStatus CreateLoader (TFunction< void()> &&InSummaryReadyCallback)
 
- Protected Member Functions inherited from FArchive
void SetShouldSkipCompilingAssets (bool Enabled)
 

Friends

class UObject
 
class UPackageMap
 
struct FAsyncPackage
 
struct FAsyncPackage2
 
class FAsyncLoadingThread2
 
struct FResolvingExportTracker
 
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)
 

Member Enumeration Documentation

◆ ELinkerStatus

Linker loading status.

Enumerator
LINKER_Failed 

Error occured when loading.

LINKER_Loaded 

Operation completed successfully.

LINKER_TimedOut 

Operation took more time than allowed.

◆ EVerifyResult

Verify result.

Enumerator
VERIFY_Failed 

Error occured when verifying import (can be fatal).

VERIFY_Success 

Verify completed successfully.

VERIFY_Redirected 

Verify completed successfully and followed a redirector.

Constructor & Destructor Documentation

◆ ~FLinkerLoad()

FLinkerLoad::~FLinkerLoad ( )
virtual

◆ FLinkerLoad()

FLinkerLoad::FLinkerLoad ( UPackage InParent,
const FPackagePath InPackagePath,
uint32  InLoadFlags,
FLinkerInstancingContext  InInstancingContext = FLinkerInstancingContext() 
)
protected

Private constructor, passing arguments through from CreateLinker.

Parameters
ParentParent object to load into, can be NULL (most likely case)
PackagePathPath of the package data to load
LoadFlagsLoad flags determining behavior
InstancingContextThe instancing context for remapping imports if needed.

Private constructor, passing arguments through from CreateLinker.

Parameters
ParentParent object to load into, can be NULL (most likely case)
PackagePathPackagePath to load from IPackageResourceManager
LoadFlagsLoad flags determining behavior

Member Function Documentation

◆ AddGameNameRedirect()

void FLinkerLoad::AddGameNameRedirect ( const FName  OldName,
const FName  NewName 
)
static

Add a new redirect from old game name to new game name for ImportMap

◆ AddKnownMissingPackage()

void FLinkerLoad::AddKnownMissingPackage ( FName  PackageName)
static

Register that a package is now known missing and that it should silence future warnings/issues

◆ AttachExternalReadDependency()

bool FLinkerLoad::AttachExternalReadDependency ( FExternalReadCallback ReadCallback)
overridevirtual

Adds external read dependency

Returns
true if dependency has been added

Reimplemented from FArchive.

◆ BuildPathName()

void FLinkerLoad::BuildPathName ( FString &  OutPathName,
FPackageIndex  ResourceIndex 
) const

Builds a string containing the full path for a resource in the export table.

Parameters
OutPathName[out] Will contain the full path for the resource
ResourceIndexIndex of a resource in the export table

◆ CreateActiveRedirectsMap()

void FLinkerLoad::CreateActiveRedirectsMap ( const FString &  GEngineIniName)
static

Add redirects to FLinkerLoad static map

DEPRECATED: Replace with FCoreRedirects format for newly added ini entries

Here is the format for the ClassRedirection:

; Basic redirects ;ActiveClassRedirects=(OldClassName="MyClass",NewClassName="NewNativePackage.MyClass") ActiveClassRedirects=(OldClassName="CylinderComponent",NewClassName="CapsuleComponent") Note: For class name redirects, the OldClassName must be the plain OldClassName, it cannot be OldPackage.OldClassName

; Keep both classes around, but convert any existing instances of that object to a particular class (insert into the inheritance hierarchy ;ActiveClassRedirects=(OldClassName="MyClass",NewClassName="MyClassParent",InstanceOnly="true")

◆ CreateImportClassAndPackage()

bool FLinkerLoad::CreateImportClassAndPackage ( FName  ClassName,
FName  PackageName,
FPackageIndex ClassIdx,
FPackageIndex PackageIdx 
)

Attempts to find the index for the given class object in the import list and adds it + its package if it does not exist

◆ CreateLinker()

FLinkerLoad * FLinkerLoad::CreateLinker ( FUObjectSerializeContext LoadContext,
UPackage Parent,
const FPackagePath PackagePath,
uint32  LoadFlags,
FArchive InLoader = nullptr,
const FLinkerInstancingContext InstancingContext = nullptr 
)
static

Creates and returns a FLinkerLoad object.

Parameters
ParentParent object to load into, can be NULL (most likely case)
PackagePathPath of the package on disk to load
LoadFlagsLoad flags determining behavior
InLoaderLoader archive override
InstancingContextContext to remap package name when loading a package on disk into a package with a different name
Returns
new FLinkerLoad object for Parent/ Filename

Creates and returns a FLinkerLoad object.

Parameters
ParentParent object to load into, can be NULL (most likely case)
PackagePathPackagePath to load from IPackageResourceManager
LoadFlagsLoad flags determining behavior
Returns
new FLinkerLoad object for Parent/ PackagePath

◆ CreateLoader()

FLinkerLoad::ELinkerStatus FLinkerLoad::CreateLoader ( TFunction< void()> &&  InSummaryReadyCallback)
protected

Creates loader used to serialize content.

◆ DestroyLoader()

void FLinkerLoad::DestroyLoader ( )

◆ Detach()

void FLinkerLoad::Detach ( )

Detaches linker from bulk data and exports and removes itself from array of loaders.

◆ DetachExports()

void FLinkerLoad::DetachExports ( )

Only detaches the linker from its exports and the reset their cached state in the linker without touching bulkdata or underlying loader

◆ DetachLoader()

void FLinkerLoad::DetachLoader ( )

Detaches all bulkdata currently attached to the FLinkerLoad followed by destroying the internal loader. This is a fairly dangerous method to call as it will leave the FLinkerLoad in a state where using it as a FArchive will cause an assert/crash. It is intended as a short/medium term fix to an internal engine issue and will be deprecated as soon as possible.

◆ FindExistingExport()

UObject * FLinkerLoad::FindExistingExport ( int32  ExportIndex)

Before loading a persistent object from disk, this function can be used to discover the object in memory. This could happen in the editor when you save a package (which destroys the linker) and then play PIE, which would cause the Linker to be recreated. However, the objects are still in memory, so there is no need to reload them.

Parameters
ExportIndexThe index of the export to hunt down
Returns
The object that was found, or null if it wasn't found

Before loading anything objects off disk, this function can be used to discover the object in memory. This could happen in the editor when you save a package (which destroys the linker) and then play PIE, which would cause the Linker to be recreated. However, the objects are still in memory, so there is no need to reload them.

Parameters
ExportIndexThe index of the export to hunt down
Returns
The object that was found, or NULL if it wasn't found

◆ FindExistingImport()

UObject * FLinkerLoad::FindExistingImport ( int32  ImportIndex)
Parameters
ImportIndexThe index of the import to hunt down
Returns
The object that was found, or null if it wasn't found

◆ FindExistingLinkerForPackage()

FLinkerLoad * FLinkerLoad::FindExistingLinkerForPackage ( const UPackage Package)
static

Looks for an existing linker for the given package, without trying to make one if it doesn't exist

◆ FindExportIndex()

int32 FLinkerLoad::FindExportIndex ( FName  ClassName,
FName  ClassPackage,
FName  ObjectName,
FPackageIndex  ExportOuterIndex 
)

◆ FindImport() [1/2]

bool FLinkerLoad::FindImport ( FPackageIndex  OuterIndex,
FName  ObjectName,
FPackageIndex OutObjectIndex 
)

Locates package index for a given name in an outer.

◆ FindImport() [2/2]

bool FLinkerLoad::FindImport ( FStringView  FullObjectPath,
FPackageIndex OutObjectIndex 
)

Finds an import given the full object path as a string.

Note: since imports are stored in an array, it needs to linearly search for each import in the object path.

◆ FindImportClassAndPackage()

bool FLinkerLoad::FindImportClassAndPackage ( FName  ClassName,
FPackageIndex ClassIdx,
FPackageIndex PackageIdx 
)

Locates the class adjusted index and its package adjusted index for a given class name in the import map

◆ FindImportPackage()

bool FLinkerLoad::FindImportPackage ( FName  PackageName,
FPackageIndex PackageIdx 
)

Locates package index for a UPackage import

◆ FindNewNameForClass()

FName FLinkerLoad::FindNewNameForClass ( FName  OldClassName,
bool  bIsInstance 
)
static

Utility functions to query the object name redirects list for the current name for a class

Parameters
OldClassNameAn old class name, without path
Returns
Current name of the class. It will be None if no redirect found

◆ FindNewNameForEnum()

FName FLinkerLoad::FindNewNameForEnum ( FName  OldEnumName)
static

Utility functions to query the enum name redirects list for the current name for an enum

Parameters
OldEnumNameAn old enum name, without path
Returns
Current full path of the enum. It will be None if no redirect found

◆ FindNewNameForStruct()

FName FLinkerLoad::FindNewNameForStruct ( FName  OldStructName)
static

Utility functions to query the struct name redirects list for the current name for a struct

Parameters
OldStructNameAn old struct name, without path
Returns
Current full path of the struct. It will be None if no redirect found

◆ FindNewPathNameForClass()

FString FLinkerLoad::FindNewPathNameForClass ( const FString &  OldClassNameOrPathName,
bool  bIsInstance 
)
static

Utility functions to query the object name redirects list for the current name for a class

Parameters
OldClassNameOrPathNameAn old class name or pathname
Returns
Current full path of the class. It will be empty if no redirect found

◆ FindPreviousNamesForClass()

TArray< FName > FLinkerLoad::FindPreviousNamesForClass ( const FString &  CurrentClassPath,
bool  bIsInstance 
)
static

Utility functions to query the object name redirects list for previous names for a class

Parameters
CurrentClassPathThe current name of the class, with a full path
bIsInstanceIf true, we're an instance, so check instance only maps as well
Returns
Names without path of all classes that were redirected to this name. Empty if none found.

◆ FindPreviousPathNamesForClass()

TArray< FString > FLinkerLoad::FindPreviousPathNamesForClass ( const FString &  CurrentClassPath,
bool  bIsInstance,
bool  bIncludeShortNames = false 
)
static

Utility functions to query the object name redirects list for previous names for a class

Parameters
CurrentClassPathThe current name of the class, with a full path
bIsInstanceIf true, we're an instance, so check instance only maps as well
bIncludeShortNamesIf true, also include short names without a package
Returns
Full object paths of all classes that were redirected to this name. Empty if none found.

◆ FinishExternalReadDependencies()

bool FLinkerLoad::FinishExternalReadDependencies ( double  TimeLimit)

Finalizes external dependencies till time limit is exceeded

Returns
true if all dependencies are finished, false otherwise

◆ FixupExportMap()

FLinkerLoad::ELinkerStatus FLinkerLoad::FixupExportMap ( )

Allows object instances to be converted to other classes upon loading a package

◆ FlushCache()

void FLinkerLoad::FlushCache ( )
overridevirtual

Flush Loader Cache

Reimplemented from FArchive.

◆ ForceBlueprintFinalization()

void FLinkerLoad::ForceBlueprintFinalization ( )
overridevirtual

Inform the archive that blueprint finalization is pending.

Reimplemented from FArchive.

◆ GetArchetypeFromLoader()

UObject * FLinkerLoad::GetArchetypeFromLoader ( const UObject Obj)
overridevirtual

Called to retrieve the archetype from the event driven loader. If this returns null, then call GetArchetype yourself.

Reimplemented from FArchive.

◆ GetArchiveName()

FString FLinkerLoad::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.

◆ GetAsyncLoader()

UE_FORCEINLINE_HINT FAsyncArchive * FLinkerLoad::GetAsyncLoader ( )
inline

◆ GetDebugName()

virtual FString FLinkerLoad::GetDebugName ( ) const
inlineoverridevirtual

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.

◆ GetExportClassPackage()

FName FLinkerLoad::GetExportClassPackage ( int32  i)

◆ GetHashBucket()

static UE_FORCEINLINE_HINT int32 FLinkerLoad::GetHashBucket ( FName  Object)
inlinestatic

◆ GetInstancingContext()

UE_FORCEINLINE_HINT const FLinkerInstancingContext & FLinkerLoad::GetInstancingContext ( ) const
inline

◆ GetLinker()

virtual FLinker * FLinkerLoad::GetLinker ( )
inlineoverridevirtual

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

Reimplemented from FArchive.

◆ GetLoader()

FArchive * FLinkerLoad::GetLoader ( ) const
inlineprotected

◆ GetLoader_Unsafe()

FArchive * FLinkerLoad::GetLoader_Unsafe ( ) const
inline

Access the underlying archive. Note that if this is a text archive, the loader will point to a generic text file, and not a binary archive as in the past. General access to the underlying file format is discouraged and should only be done after checking that the linker package is what you expect it to be (i.e. !IsTextFormat())

◆ GetOwnerThreadId()

UE_FORCEINLINE_HINT int32 FLinkerLoad::GetOwnerThreadId ( ) const
inline

Returns ID of the thread that created this linker

◆ GetPackagePath()

const FPackagePath & FLinkerLoad::GetPackagePath ( ) const
inline

Get the PackagePath being loaded. For linkers created from LoadPackage this will be a mounted and extension-specified path, but it may be unmounted and unspecified for other linkers

◆ GetPackageTrailer()

const UE::FPackageTrailer * FLinkerLoad::GetPackageTrailer ( ) const
inline

◆ HasAnyObjectsPendingLoad()

bool FLinkerLoad::HasAnyObjectsPendingLoad ( ) const

Checks if the linker has any objects in the export table that require loading.

◆ HasFinishedInitialization()

UE_FORCEINLINE_HINT bool FLinkerLoad::HasFinishedInitialization ( ) const
inline

Returns whether linker has finished (potentially) async initialization.

Returns
true if initialized, false if pending.

◆ HasLoader()

bool FLinkerLoad::HasLoader ( ) const
inline

◆ InvalidateExport()

void FLinkerLoad::InvalidateExport ( UObject OldObject,
bool  bHideGarbageObjects = true 
)
static

Invalidates the future loading of a specific object, so that subsequent loads will fail This is used to invalidate sub objects of a replaced object that may no longer be valid

◆ IsBlueprintFinalizationPending()

bool FLinkerLoad::IsBlueprintFinalizationPending ( ) const

Query method to help handle recursive behavior. When this returns true, this linker is in the middle of, or is about to call FinalizeBlueprint() (for a blueprint class somewhere in the current callstack). Needed when we get to finalizing a sub-class before we've finished finalizing its super (so we know we need to finish finalizing the super first).

Returns
True if FinalizeBlueprint() is currently being ran (or about to be ran) for an export (Blueprint) class.

◆ IsDestroyingLoader()

UE_FORCEINLINE_HINT bool FLinkerLoad::IsDestroyingLoader ( ) const
inline

◆ IsImportLazyLoadEnabled()

static bool FLinkerLoad::IsImportLazyLoadEnabled ( )
inlinestatic

Determines if imports can be lazily loaded. This relies on compile-time enabling of UE_WITH_OBJECT_HANDLE_LATE_RESOLVE from ObjectHandle.h as well as other factors.

Returns
true if imports can be lazily loaded

◆ IsKnownMissingPackage()

bool FLinkerLoad::IsKnownMissingPackage ( FName  PackageName)
static

Utility functions to check the list of known missing packages and silence any warnings that may have occurred on load.

Returns
true if the provided package is in the KnownMissingPackage list

◆ IsValidPackageIndex()

bool FLinkerLoad::IsValidPackageIndex ( FPackageIndex  InIndex)

Test whether the given package index is a valid import or export in this package

◆ LoadAllObjects()

void FLinkerLoad::LoadAllObjects ( bool  bForcePreload)

Loads all objects in package.

Parameters
bForcePreloadWhether to explicitly call Preload (serialize) right away instead of being called from EndLoad()

◆ LoadAndDetachAllBulkData()

void FLinkerLoad::LoadAndDetachAllBulkData ( )

Detaches linker from bulk data.

◆ MarkScriptSerializationEnd()

void FLinkerLoad::MarkScriptSerializationEnd ( const UObject Obj)
overridevirtual

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

Reimplemented from FArchive.

◆ MarkScriptSerializationStart()

void FLinkerLoad::MarkScriptSerializationStart ( const UObject Obj)
overridevirtual

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

Reimplemented from FArchive.

◆ OnNewFileAdded()

void FLinkerLoad::OnNewFileAdded ( const FString &  Filename)
static

◆ OnPakFileMounted()

void FLinkerLoad::OnPakFileMounted ( const IPakFile PakFile)
static

◆ Preload()

void FLinkerLoad::Preload ( UObject Object)
overridevirtual

Serialize the object data for the specified object from the unreal package file. Loads any additional resources required for the object to be in a valid state to receive the loaded data, such as the object's Outer, Class, or ObjectArchetype.

When this function exits, Object is guaranteed to contain the data stored that was stored on disk.

Parameters
ObjectThe object to load data for. If the data for this object isn't stored in this FLinkerLoad, routes the call to the appropriate linker. Data serialization is skipped if the object has already been loaded (as indicated by the RF_NeedLoad flag not set for the object), so safe to call on objects that have already been loaded. Note that this function assumes that Object has already been initialized against its template object. If Object is a UClass and the class default object has already been created, calls Preload for the class default object as well.

Reimplemented from FArchive.

◆ PRIVATE_ForceLoadAllDependencies()

void FLinkerLoad::PRIVATE_ForceLoadAllDependencies ( UPackage Package)
static

Wraps a call to the package linker's ResolveAllImports().

Parameters
PackageThe package whose imports you want all loaded.

WARNING!!! This function shouldn't be used carelessly, and serves as a hacky entrypoint to FLinkerLoad's privates. It should only be used at very specific times, and in very specific cases. If you're unsure, DON'T TRY TO USE IT!!!

◆ PRIVATE_PatchNewObjectIntoExport() [1/2]

void FLinkerLoad::PRIVATE_PatchNewObjectIntoExport ( int32  OldExportIndex,
UObject NewObject,
FUObjectSerializeContext InLoadContext = nullptr,
bool  bHideGarbageObjects = true 
)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CAUTION: This function is potentially DANGEROUS. Should only be used when you're really, really sure you know what you're doing. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Replaces OldObject's entry in its linker with NewObject, so that all subsequent loads of OldObject will return NewObject. This is used to update instanced components that were serialized out, but regenerated during compile-on-load

OldObject will be consigned to oblivion, and NewObject will take its place.

WARNING!!! This function is potentially very dangerous! It should only be used at very specific times, and in very specific cases. If you're unsure, DON'T TRY TO USE IT!!!

◆ PRIVATE_PatchNewObjectIntoExport() [2/2]

void FLinkerLoad::PRIVATE_PatchNewObjectIntoExport ( UObject OldObject,
UObject NewObject,
FUObjectSerializeContext InLoadContext = nullptr,
bool  bHideGarbageObjects = true 
)
static

Replaces OldObject's entry in its linker with NewObject, so that all subsequent loads of OldObject will return NewObject. This is used to update instanced components that were serialized out, but regenerated during compile-on-load

OldObject will be consigned to oblivion, and NewObject will take its place.

WARNING!!! This function is potentially very dangerous! It should only be used at very specific times, and in very specific cases. If you're unsure, DON'T TRY TO USE IT!!!

◆ RemoveKnownMissingPackage()

bool FLinkerLoad::RemoveKnownMissingPackage ( FName  PackageName)
static

Register that a package is no longer known missing and that it should be searched for again in the future

Returns
true if the provided package was removed from the KnownMissingPackage list

◆ RequestPlaceholderValue()

UObject * FLinkerLoad::RequestPlaceholderValue ( const FProperty Property,
const UClass ObjectType,
const TCHAR ObjectPath 
)

Gives external code the ability to create FLinkerPlaceholderBase objects in place of loads that may violate the LOAD_DeferDependencyLoads state. This will only produce a placeholder if LOAD_DeferDependencyLoads is set for this linker.

NOTE: For now, this will only produce UClass placeholders, as that is the only type we've identified needing.

Parameters
PropertyThe property for which you want to defer loading the value.
ObjectTypeThe expected type of the object you want to defer loading of.
ObjectPathThe full object/package path for the expected object.
Returns
A FLinkerPlaceholderBase UObject that can be used in place of the import dependency.

◆ ResolveResource()

UObject * FLinkerLoad::ResolveResource ( FPackageIndex  ResourceIndex)

Returns the Object associated with the resource indicated.

Parameters
ResourceIndexlocation of the object resource
Returns
The UObject at ResourceIndex, or nullptr if not found

◆ ResolveResourceName()

FName FLinkerLoad::ResolveResourceName ( FPackageIndex  ResourceIndex)

Returns the ObjectName associated with the resource indicated.

Parameters
ResourceIndexlocation of the object resource
Returns
ObjectName for the FObjectResource at ResourceIndex, or NAME_None if not found

◆ SerializeBulkData()

bool FLinkerLoad::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.

◆ SerializeGatherableTextDataMap()

FLinkerLoad::ELinkerStatus FLinkerLoad::SerializeGatherableTextDataMap ( bool  bForceEnableForCommandlet = false)

Serializes the gatherable text data container.

◆ SerializeThumbnails()

FLinkerLoad::ELinkerStatus FLinkerLoad::SerializeThumbnails ( bool  bForceEnableInGame = false)

Serializes thumbnails

◆ SetLoader()

void FLinkerLoad::SetLoader ( FArchive InLoader,
bool  bInLoaderNeedsEngineVersionChecks 
)
protected

◆ ShouldRegenerateGuids()

bool FLinkerLoad::ShouldRegenerateGuids ( ) const
inline

◆ StaticType()

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

◆ Tick()

FLinkerLoad::ELinkerStatus FLinkerLoad::Tick ( float  InTimeLimit,
bool  bInUseTimeLimit,
bool  bInUseFullTimeLimit,
TMap< TPair< FName, FPackageIndex >, FPackageIndex > *  ObjectNameWithOuterToExportMap 
)
protected

Ticks an in-flight linker and spends InTimeLimit seconds on creation. This is a soft time limit used if bInUseTimeLimit is true.

Parameters
InTimeLimitSoft time limit to use if bInUseTimeLimit is true
bInUseTimeLimitWhether to use a (soft) timelimit
bInUseFullTimeLimitWhether to use the entire time limit, even if blocked on I/O
Returns
true if linker has finished creation, false if it is still in flight

◆ UE_DEPRECATED()

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

◆ Verify()

void FLinkerLoad::Verify ( )

◆ VerifyImport()

FLinkerLoad::EVerifyResult FLinkerLoad::VerifyImport ( int32  ImportIndex)

A wrapper around VerifyImportInner. If the VerifyImportInner (previously VerifyImport) fails, this function will look for a UObjectRedirector that will point to the real location of the object. You will see this if an object was renamed to a different package or group, but something that was referencing the object was not not currently open. (Rename fixes up references of all loaded objects, but naturally not for ones that aren't loaded).

Parameters
ImportIndexThe index into this package's ImportMap to verify
Returns
Verify import result

Recursively gathers the dependencies of a given export (the recursive chain of imports and their imports, and so on)

Parameters
ExportIndexIndex into the linker's ExportMap that we are checking dependencies
DependenciesArray of all dependencies needed
bSkipLoadedObjectsWhether to skip already loaded objects when gathering dependencies

◆ WillTextureBeLoaded()

bool FLinkerLoad::WillTextureBeLoaded ( UClass Class,
int32  ExportIndex 
)

Checks if the specified export should be loaded or not. Performs similar checks as CreateExport().

Parameters
ExportIndexIndex of the export to check
Returns
true of the export should be loaded

Friends And Related Symbol Documentation

◆ FAsyncLoadingThread2

◆ FAsyncPackage

◆ FAsyncPackage2

◆ FResolvingExportTracker

◆ 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.

◆ UObject

friend class UObject
friend

◆ UPackageMap

friend class UPackageMap
friend

Member Data Documentation

◆ AsyncRoot

void* FLinkerLoad::AsyncRoot

The async package associated with this linker

◆ bForceSimpleIndexToObject

bool FLinkerLoad::bForceSimpleIndexToObject

◆ bHaveImportsBeenVerified

bool FLinkerLoad::bHaveImportsBeenVerified

Indicates whether the imports for this loader have been verified

◆ bIsAsyncLoader

bool FLinkerLoad::bIsAsyncLoader

True if Loader is FAsyncArchive

◆ bLockoutLegacyOperations

bool FLinkerLoad::bLockoutLegacyOperations

◆ ExportHash

TUniquePtr<int32[]> FLinkerLoad::ExportHash

◆ ExportHashCount

constexpr int32 FLinkerLoad::ExportHashCount = 256
staticconstexpr

Hash table for exports.

◆ ExternalReadDependencies

TArray<FExternalReadCallback> FLinkerLoad::ExternalReadDependencies

List of external read dependencies that must be finished to load this package

◆ LoadFlags

uint32 FLinkerLoad::LoadFlags

Flags determining loading behavior.

◆ Mutex

UE::FRecursiveMutex FLinkerLoad::Mutex

◆ PreloadDependencies

TArray<FPackageIndex> FLinkerLoad::PreloadDependencies

List of imports and exports that must be serialized before other exports...all packed together, see FirstExportDependency

◆ TemplateForGetArchetypeFromLoader

UObject* FLinkerLoad::TemplateForGetArchetypeFromLoader

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