FLinkerLoad

Windows
MacOS
Linux

Inheritance Hierarchy

FLinker

FArchiveUObject

FLinkerLoad

References

Module

CoreUObject

Header

/Engine/Source/Runtime/CoreUObject/Public/UObject/LinkerLoad.h

Include

#include "UObject/LinkerLoad.h"

Syntax

class FLinkerLoad :
    public FLinker,
    public FArchiveUObject

Variables

Name Description

Public variable

FAsyncPackage &...

 

AsyncRoot

The async package associated with this linker

Public variable

bool

 

bDynamicClassLinker

Indicates that this linker was created for a dynamic class package and will not use Loader

Public variable

bool

 

bForceSimpleIndexToObject

Public variable

bool

 

bHaveImportsBeenVerified

Indicates whether the imports for this loader have been verified

Public variable

bool

 

bIsAsyncLoader

True if Loader is FAsyncArchive

Public variable

bool

 

bLockoutLegacyOperations

Public variable

TArray< FUntype...

 

BulkDataLoaders

Bulk data that does not need to be loaded when the linker is loaded.

Public variable

int32[256]

 

ExportHash

Hash table for exports.

Public variable

TArray< FExtern...

 

ExternalReadDependencies

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

Public variable

uint32

 

LoadFlags

Flags determining loading behavior.

Public variable

TArray< FPackag...

 

PreloadDependencies

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

Public variable

UObject *

 

TemplateForGetArchetypeFromLoader

Constructors

Name Description

Protected function

FLinkerLoad

(
    UPackage* InParent,
    const TCHAR* InFilename,
    uint32 InLoadFlags
)

Private constructor, passing arguments through from CreateLinker.

Destructors

Name Description

Public function Virtual

~FLinkerLoad()

Functions

Name Description

Public function Static

void

 

AddGameNameRedirect

(
    const FName OldName,
    const FName NewName
)

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

Public function Static

void

 

AddKnownMissingPackage

(
    FName PackageName
)

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

Public function Const

void

 

BuildPathName

(
    FString& OutPathName,
    FPackageIndex ExportIndex
)

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

Public function

UObject *...

 

Create

(
    UClass* ObjectClass,
    FName ObjectName,
    UObject* Outer,
    uint32 InLoadFlags,
    bool Checked
)

Function to create the instance of, or verify the presence of, an object as found in this Linker.

Public function Static

void

 

CreateActiveRedirectsMap

(
    const FString& GEngineIniName
)

Add redirects to FLinkerLoad static map

Public function

bool

 

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

Public function Static

FLinkerLoad ...

 

CreateLinker

(
    FUObjectSerializeContext* Load...,
    UPackage* Parent,
    const TCHAR* Filename,
    uint32 LoadFlags,
    FArchive* InLoader
)

Creates and returns a FLinkerLoad object.

Protected function

ELinkerStatu...

 

CreateLoader

(
    TFunction< void()>&& InSummaryRead...
)

Creates loader used to serialize content.

Public function

void

 

DestroyLoader()

Public function

void

 

Detach()

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

Public function

UObject *...

 

FindExistingExport

(
    int32 ExportIndex
)

Before loading a persistent object from disk, this function can be used to discover the object in memory.

Public function Static

FLinkerLoad ...

 

FindExistingLinkerForPackage

(
    const UPackage* Package
)

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

Public function

int32

 

FindExportIndex

(
    FName ClassName,
    FName ClassPackage,
    FName ObjectName,
    FPackageIndex ExportOuterIndex
)

Public function

bool

 

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

Public function

bool

 

FindImportPackage

(
    FName PackageName,
    FPackageIndex& PackageIdx
)

Locates package index for a UPackage import

Public function Static

FName

 

FindNewNameForClass

(
    FName OldClassName,
    bool bIsInstance
)

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

Public function Static

FName

 

FindNewNameForEnum

(
    FName OldEnumName
)

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

Public function Static

FName

 

FindNewNameForStruct

(
    FName OldStructName
)

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

Public function Static

TArray< FNam...

 

FindPreviousNamesForClass

(
    FString CurrentClassPath,
    bool bIsInstance
)

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

Public function Static

FName

 

FindSubobjectRedirectName

(
    const FName& Name,
    UClass* Class
)

Used by Matinee to fixup component renaming

Public function

bool

 

FinishExternalReadDependencies

(
    double TimeLimit
)

Finalizes external dependencies till time limit is exceeded

Public function

ELinkerStatu...

 

FixupExportMap()

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

Public function

void

 

GatherExportDependencies

(
    int32 ExportIndex,
    TSet< FDependencyRef >& Dependenci...,
    bool bSkipLoadedObjects
)

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

Public function

void

 

GatherImportDependencies

(
    int32 ImportIndex,
    TSet< FDependencyRef >& Dependenci...,
    bool bSkipLoadedObjects
)

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

Public function

FAsyncArchiv...

 

GetAsyncLoader()

Public function

FName

 

GetExportClassPackage

(
    int32 i
)

Protected function Const

FArchive ...

 

GetLoader()

Public function Const

FArchive ...

 

GetLoader_Unsafe()

Access the underlying archive.

Public function Const

int32

 

GetOwnerThreadId()

Returns ID of the thread that created this linker

Public function Const

bool

 

HasAnyObjectsPendingLoad()

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

Public function Const

bool

 

HasFinishedInitialization()

Returns whether linker has finished (potentially) async initialization.

Public function Const

bool

 

HasLoader()

Public function Static

void

 

InvalidateExport

(
    UObject* OldObject
)

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

Public function Const

bool

 

IsBlueprintFinalizationPending()

Query method to help handle recursive behavior.

Public function Static

bool

 

IsKnownMissingPackage

(
    FName PackageName
)

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

Public function

bool

 

IsValidPackageIndex

(
    FPackageIndex InIndex
)

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

Public function

void

 

LoadAllObjects

(
    bool bForcePreload
)

Loads all objects in package.

Public function

void

 

LoadAndDetachAllBulkData()

Detaches linker from bulk data.

Public function Static

void

 

OnNewFileAdded

(
    const FString& Filename
)

Public function Static

void

 

PRIVATE_ForceLoadAllDependencies

(
    UPackage* Package
)

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

Public function Static

void

 

PRIVATE_PatchNewObjectIntoExport

(
    UObject* OldObject,
    UObject* NewObject
)

Replaces OldObject's entry in its linker with NewObject, so that all subsequent loads of OldObject will return NewObject.

Public function Static

bool

 

RemoveKnownMissingPackage

(
    FName PackageName
)

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

Public function

UObject *...

 

RequestPlaceholderValue

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

Public function

FName

 

ResolveResourceName

(
    FPackageIndex ResourceIndex
)

Returns the ObjectName associated with the resource indicated.

Public function

ELinkerStatu...

 

SerializeGatherableTextDataMap

(
    bool bForceEnableForCommandlet
)

Serializes the gatherable text data container.

Public function

ELinkerStatu...

 

SerializeThumbnails

(
    bool bForceEnableForCommandlet
)

Serializes thumbnails

Protected function

void

 

SetLoader

(
    FArchive* InLoader
)

Public function Static

void

 

StaticInit

(
    UClass* InUTexture2DStaticClas...
)

Initialize the static variables

Public function Static

ELinkerType:...

 

StaticType()

Variables.

Protected function

ELinkerStatu...

 

Tick

(
    float InTimeLimit,
    bool bInUseTimeLimit,
    bool bInUseFullTimeLimit
)

Ticks an in-flight linker and spends InTimeLimit seconds on creation.

Public function

void

 

Verify()

Public function

EVerifyResul...

 

VerifyImport

(
    int32 ImportIndex
)

A wrapper around VerifyImportInner.

Public function

bool

 

WillTextureBeLoaded

(
    UClass* Class,
    int32 ExportIndex
)

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

Overridden from FArchive

Name Description

Public function Virtual

bool

 

AttachExternalReadDependency

(
    FExternalReadCallback& ReadCallbac...
)

Adds external read dependency

Public function Virtual

void

 

FlushCache()

Flush Loader Cache

Public function Virtual

void

 

ForceBlueprintFinalization()

Inform the archive that blueprint finalization is pending.

Public function Virtual

UObject *...

 

GetArchetypeFromLoader

(
    const UObject* Obj
)

Called to retrieve the archetype from the event driven loader.

Public function Virtual Const

FString

 

GetArchiveName()

Returns the name of the Archive.

Public function Virtual

FLinker *...

 

GetLinker()

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

Public function Virtual

FUObjectSeri...

 

GetSerializeContext()

Gets the current UObject serialization context for this archive

Public function Virtual

void

 

MarkScriptSerializationEnd

(
    const UObject* Obj
)

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

Public function Virtual

void

 

MarkScriptSerializationStart

(
    const UObject* Obj
)

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

Public function Virtual

void

 

Preload

(
    UObject* Object
)

Serialize the object data for the specified object from the unreal package file.

Public function Virtual

void

 

SetSerializeContext

(
    FUObjectSerializeContext* InLo...
)

FLinkerLoad creation helpers END

Enums

Name

Description

Protected enum

ELinkerStatus

Linker loading status.

Protected enum

EVerifyResult

Verify result.

Constants

Name

Description

bActiveRedirectsMapInitialized

Makes sure the deprecated active redirects inis have been read

NAME_LoadErrors

UTexture2DStaticClass

Allows access to UTexture2D::StaticClass() without linking Core with Engine

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback