UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TLinkerImportPlaceholder< PlaceholderType > Class Template Reference

#include <LinkerPlaceholderBase.h>

+ Inheritance diagram for TLinkerImportPlaceholder< PlaceholderType >:

Public Member Functions

virtual bool HasKnownReferences () const override
 
virtual int32 ResolveAllPlaceholderReferences (UObject *ReplacementObj) override
 
void AddReferencingProperty (FFieldVariant ReferencingProperty)
 
void RemoveReferencingProperty (FFieldVariant ReferencingProperty)
 
void AddReferencingScriptExpr (PlaceholderType **ExpressionPtr)
 
void AddDerivedFunction (UStruct *DerivedFunctionType)
 
- Public Member Functions inherited from FLinkerPlaceholderBase
 FLinkerPlaceholderBase ()
 
virtual ~FLinkerPlaceholderBase ()
 
bool AddReferencingPropertyValue (FFieldVariant ReferencingProperty, void *DataPtr)
 
void SetupPlaceholderSubobject (ULinkerPlaceholderExportObject *PlaceholderSubobject)
 
bool IsDeferredSubobject () const
 
TArray< ULinkerPlaceholderExportObject * > & GetSubobjectPlaceholders ()
 
bool HasBeenFullyResolved () const
 
virtual UObjectGetPlaceholderAsUObject () bool IsMarkedResolved() const
 

Additional Inherited Members

- Public Attributes inherited from FLinkerPlaceholderBase
FPackageIndex PackageIndex
 
TWeakObjectPtr< const UClassDeferredObjectType
 
- Protected Member Functions inherited from FLinkerPlaceholderBase
void MarkAsResolved ()
 

Member Function Documentation

◆ AddDerivedFunction()

template<class PlaceholderType >
void TLinkerImportPlaceholder< PlaceholderType >::AddDerivedFunction ( UStruct DerivedFunctionType)

Records a child placeholder object. Not needed except for validiation purposes, since both the child object and this are placeholders: Records a derived function, which will have a reference back to its (placeholder) parent function. We need to update the derived function when the parent finishes loading.

◆ AddReferencingProperty()

template<class PlaceholderType >
void TLinkerImportPlaceholder< PlaceholderType >::AddReferencingProperty ( FFieldVariant  ReferencingProperty)

Records the supplied property so that we can later replace it's references to this placeholder with another (real) object.

Parameters
ReferencingPropertyA property that references this placeholder.

◆ AddReferencingScriptExpr()

template<class PlaceholderType >
void TLinkerImportPlaceholder< PlaceholderType >::AddReferencingScriptExpr ( PlaceholderType **  ExpressionPtr)

Records a raw pointer, directly to the UObject* script expression (so that we can switch-out its value in ResolveScriptReferences).

NOTE: We don't worry about creating some kind of weak ref to the script pointer (or facilitate a way for this tracked reference to be removed). We're not worried about the script ref being deleted before we call ResolveScriptReferences (because we expect that to do this all within the same frame; before GC can be ran).

Parameters
ExpressionPtrA direct pointer to the UObject* that is now referencing this placeholder.

◆ HasKnownReferences()

template<class PlaceholderType >
bool TLinkerImportPlaceholder< PlaceholderType >::HasKnownReferences ( ) const
overridevirtual

A query method that let's us check to see if this class is currently being referenced by anything (if this returns false, then a referencing property could have forgotten to add itself... or, we've replaced all references).

Returns
True if this has anything stored in its ReferencingProperties container, otherwise false.

Reimplemented from FLinkerPlaceholderBase.

◆ RemoveReferencingProperty()

template<class PlaceholderType >
void TLinkerImportPlaceholder< PlaceholderType >::RemoveReferencingProperty ( FFieldVariant  ReferencingProperty)

Removes the specified property from this class's internal tracking list (which aims to keep track of properties utilizing this placeholder).

Parameters
ReferencingPropertyA property that used to use this placeholder and now no longer does.

◆ ResolveAllPlaceholderReferences()

template<class PlaceholderType >
int32 TLinkerImportPlaceholder< PlaceholderType >::ResolveAllPlaceholderReferences ( UObject ReplacementObj)
overridevirtual

Iterates over all known referencers and attempts to replace their references to this with a new (hopefully proper) UObject.

Parameters
ReplacementObjThe object that you want all references to this replaced with.
Returns
The number of references that were successfully replaced.

Reimplemented from FLinkerPlaceholderBase.


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