UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::GC::TReachabilityCollectorBase< Options > Class Template Reference
+ Inheritance diagram for UE::GC::TReachabilityCollectorBase< Options >:

Public Member Functions

virtual bool IsIgnoringArchetypeRef () const override final
 
virtual bool IsIgnoringTransient () const override final
 
virtual bool NeedsInitialReferences () const override final
 
virtual void AllowEliminatingReferences (bool bAllow) override final
 
virtual void SetIsProcessingNativeReferences (bool bIsNative) override final
 
virtual bool NeedsPropertyReferencer () const override final
 
- Public Member Functions inherited from FReferenceCollector
virtual COREUOBJECT_API ~FReferenceCollector ()
 
virtual COREUOBJECT_API void AddStableReference (TObjectPtr< UObject > *Object)
 
virtual COREUOBJECT_API void AddStableReferenceArray (TArray< TObjectPtr< UObject > > *Objects)
 
virtual COREUOBJECT_API void AddStableReferenceSet (TSet< TObjectPtr< UObject > > *Objects)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddStableReferenceMap (TMapBase< KeyType, ValueType, Allocator, KeyFuncs > &Map)
 
virtual COREUOBJECT_API void AddStableReference (UObject **Object)
 
virtual COREUOBJECT_API void AddStableReferenceArray (TArray< UObject * > *Objects)
 
virtual COREUOBJECT_API void AddStableReferenceSet (TSet< UObject * > *Objects)
 
template<class UObjectType >
void AddStableReference (UObjectType **Object)
 
template<class UObjectType >
void AddStableReferenceArray (TArray< UObjectType * > *Objects)
 
template<class UObjectType >
void AddStableReferenceSet (TSet< UObjectType * > *Objects)
 
template<class UObjectType >
UE_FORCEINLINE_HINT void AddStableReference (TObjectPtr< UObjectType > *Object)
 
template<class UObjectType >
UE_FORCEINLINE_HINT void AddStableReferenceArray (TArray< TObjectPtr< UObjectType > > *Objects)
 
template<class UObjectType >
UE_FORCEINLINE_HINT void AddStableReferenceSet (TSet< TObjectPtr< UObjectType > > *Objects)
 
template<class UObjectType >
void AddReferencedObject (UObjectType *&Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObject (const UObjectType *&Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< UObjectType * > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< const UObjectType * > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TSet< UObjectType * > &ObjectSet, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType *, ValueType, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType, ValueType *, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType *, ValueType *, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObject (TObjectPtr< UObjectType > &Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObject (TObjectPtr< const UObjectType > &Object, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< TObjectPtr< UObjectType > > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TArray< TObjectPtr< const UObjectType > > &ObjectArray, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<class UObjectType >
void AddReferencedObjects (TSet< TObjectPtr< UObjectType > > &ObjectSet, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< TObjectPtr< KeyType >, ValueType, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< KeyType, TObjectPtr< ValueType >, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename KeyType , typename ValueType , typename Allocator , typename KeyFuncs >
void AddReferencedObjects (TMapBase< TObjectPtr< KeyType >, TObjectPtr< ValueType >, Allocator, KeyFuncs > &Map, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
template<typename T >
void AddReferencedObject (TWeakObjectPtr< T > &P, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObject (FWeakObjectPtr &P, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObjects (const UScriptStruct *&ScriptStruct, void *Instance, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObjects (TObjectPtr< const UScriptStruct > &ScriptStruct, void *Instance, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddReferencedObjects (TWeakObjectPtr< const UScriptStruct > &ScriptStruct, void *Instance, const UObject *ReferencingObject=nullptr, const FProperty *ReferencingProperty=nullptr)
 
COREUOBJECT_API void AddPropertyReferences (const UStruct *Struct, void *Instance, const UObject *ReferencingObject=nullptr)
 
COREUOBJECT_API void AddPropertyReferencesWithStructARO (const UScriptStruct *Struct, void *Instance, const UObject *ReferencingObject=nullptr)
 
COREUOBJECT_API void AddPropertyReferencesWithStructARO (const UClass *Class, void *Instance, const UObject *ReferencingObject=nullptr)
 
COREUOBJECT_API void AddPropertyReferencesLimitedToObjectProperties (const UStruct *Struct, void *Instance, const UObject *ReferencingObject=nullptr)
 
virtual void SetSerializedProperty (class FProperty *Inproperty)
 
virtual class FPropertyGetSerializedProperty () const
 
virtual bool MarkWeakObjectReferenceForClearing (UObject **WeakReference, UObject *ReferenceOwner)
 
virtual bool IsProcessingNativeReferences () const
 
FReferenceCollectorArchiveGetVerySlowReferenceCollectorArchive ()
 

Protected Member Functions

FORCEINLINE EKillable MayKill () const
 
- Protected Member Functions inherited from FReferenceCollector
virtual void HandleObjectReference (UObject *&InObject, const UObject *InReferencingObject, const FProperty *InReferencingProperty)=0
 
virtual void HandleObjectReferences (UObject **InObjects, const int32 ObjectNum, const UObject *InReferencingObject, const FProperty *InReferencingProperty)
 
virtual COREUOBJECT_API void HandleObjectReferences (FObjectPtr *InObjects, const int32 ObjectNum, const UObject *InReferencingObject, const FProperty *InReferencingProperty)
 

Protected Attributes

bool bAllowEliminatingReferences = true
 
EOrigin CurrentOrigin = EOrigin::Other
 

Member Function Documentation

◆ AllowEliminatingReferences()

template<EGCOptions Options>
virtual void UE::GC::TReachabilityCollectorBase< Options >::AllowEliminatingReferences ( bool  bAllow)
inlinefinaloverridevirtual

Allows reference elimination by this collector.

Reimplemented from FReferenceCollector.

◆ IsIgnoringArchetypeRef()

template<EGCOptions Options>
virtual bool UE::GC::TReachabilityCollectorBase< Options >::IsIgnoringArchetypeRef ( ) const
inlinefinaloverridevirtual

If true archetype references should not be added to this collector.

Implements FReferenceCollector.

◆ IsIgnoringTransient()

template<EGCOptions Options>
virtual bool UE::GC::TReachabilityCollectorBase< Options >::IsIgnoringTransient ( ) const
inlinefinaloverridevirtual

If true transient objects should not be added to this collector.

Implements FReferenceCollector.

◆ MayKill()

template<EGCOptions Options>
FORCEINLINE EKillable UE::GC::TReachabilityCollectorBase< Options >::MayKill ( ) const
inlineprotected

◆ NeedsInitialReferences()

template<EGCOptions Options>
virtual bool UE::GC::TReachabilityCollectorBase< Options >::NeedsInitialReferences ( ) const
inlinefinaloverridevirtual

Used by parallel reachability analysis to pre-collect and then exclude some initial FGCObject references

Reimplemented from FReferenceCollector.

◆ NeedsPropertyReferencer()

template<EGCOptions Options>
virtual bool UE::GC::TReachabilityCollectorBase< Options >::NeedsPropertyReferencer ( ) const
inlinefinaloverridevirtual

Make Add[OnlyObject]PropertyReference/AddReferencedObjects(UScriptStruct) use AddReferencedObjects(UObject*&) callbacks with ReferencingObject and ReferencingProperty context supplied and check for null references before making a callback.

Return false to use context free AddStableReference callbacks without null checks that avoid sync cache misses when batch processing references.

Reimplemented from FReferenceCollector.

◆ SetIsProcessingNativeReferences()

template<EGCOptions Options>
virtual void UE::GC::TReachabilityCollectorBase< Options >::SetIsProcessingNativeReferences ( bool  bIsNative)
inlinefinaloverridevirtual

Sets whether this collector is currently processing native references or not.

Reimplemented from FReferenceCollector.

Member Data Documentation

◆ bAllowEliminatingReferences

template<EGCOptions Options>
bool UE::GC::TReachabilityCollectorBase< Options >::bAllowEliminatingReferences = true
protected

◆ CurrentOrigin

template<EGCOptions Options>
EOrigin UE::GC::TReachabilityCollectorBase< Options >::CurrentOrigin = EOrigin::Other
protected

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