Navigation
API > API/Runtime > API/Runtime/CoreUObject > API/Runtime/CoreUObject/Blueprint
Inheritance Hierarchy
- FDeferredInitializationTrackerBase
- FDeferredCdoInitializationTracker
- FDeferredSubObjInitializationTracker
References
| Module | CoreUObject |
| Header | /Engine/Source/Runtime/CoreUObject/Public/Blueprint/BlueprintSupport.h |
| Include | #include "Blueprint/BlueprintSupport.h" |
Syntax
struct FDeferredInitializationTrackerBase
Remarks
A base struct for storing FObjectInitializers that were not run on Blueprint objects post-construction (presumably because the object's super/archetype had not been fully serialized yet).
This was designed to hold onto FObjectInitializers until a later point, when they can properly be ran (after the archetype has been serialized).
Variables
| Type | Name | Description | |
|---|---|---|---|
| TMultiMap< const UObject *, UObject * > | ArchetypeInstanceMap | Tracks objects that have had their initialization deferred as a result of their archetype not being fully serialized (maps archetype => list-o-instances) | |
| TMap< UObject *, FObjectInitializer > | DeferredInitializers | A map that lets us look up FObjectInitializers by their UObject | |
| TMultiMap< UObject *, UObject * > | DeferredPreloads | Track default objects that had their Preload() skipped, because a archetype dependency should initialize first | |
| TArray< UObject * > | ResolvingObjects | Used to keep ResolveArchetypeInstances() from re-adding sub-objects via DeferPreload() |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| FObjectInitializer * | Add
(
const UObject* InitDependency, |
Makes a copy of the specified initializer and stores it (mapped under its dependency), so that it can instead be executed later via ResolveArchetypeInstances(). | |
| bool | DeferPreload
(
UObject* Object |
Determines if the specified object needs to have its Preload() call deferred (this is meant to be called from Preload() itself). | |
| bool | IsInitializationDeferred
(
const UObject* Object |
Checks to see if the specified object has had its initialization deferred (meaning a super/archetype hasn't had FObjectInitializer::PostConstructInit() ran on it yet). | |
| bool | IsResolving
(
UObject* ArchetypeInstance |
Used to keep DeferPreload() from re-adding objects while we're in the midst of resolving. | |
| void | PreloadDeferredDependents
(
UObject* ArchetypeInstance |
Runs through all objects that had their Preload() skipped due to an initializer being deferred. | |
| void | ResolveArchetypeInstances
(
UObject* ArchetypeKey |
Runs all deferred initializers that were dependent on the specified archetype (unless they're dependent on another), and runs Preload() on any objects that had their Preload() skipped as a result. | |
| bool | ResolveDeferredInitialization
(
UObject* ResolvingObject, |
Runs the deferred initializer for the specified archetype object if its not dependent on other archetypes (like a sub-object that first requires the super's CDO to be constructed, and then for its archetype to be serialized). |