Navigation
Unreal Engine C++ API Reference > 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). |