UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::GC::TBatchDispatcher< ProcessorType > Struct Template Reference

Public Types

typedef FDebugSchemaStackNoOpScope SchemaStackScopeType
 

Public Member Functions

 UE_NONCOPYABLE (TBatchDispatcher)
 
 TBatchDispatcher (FWorkerContext &InContext, FReferenceCollector &InCollector)
 
FORCENOINLINE void HandleReferenceDirectly (const UObject *ReferencingObject, UObject *&Object, FMemberId MemberId, EKillable Killable)
 
FORCEINLINE void HandleReferenceDirectly (const UObject *ReferencingObject, UObject *&Object, FMemberId MemberId, EOrigin Origin, bool bAllowReferenceElimination)
 
FORCEINLINE_DEBUGGABLE void HandleKillableReference (UObject *&Object, FMemberId MemberId, EOrigin Origin)
 
FORCEINLINE void HandleImmutableReference (UObject *Object, FMemberId MemberId, EOrigin Origin)
 
template<class ArrayType >
FORCEINLINE void HandleKillableArray (ArrayType &&Array, FMemberId MemberId, EOrigin Origin)
 
FORCEINLINE void HandleKillableReferences (TArrayView< UObject * > Objects, FMemberId MemberId, EOrigin Origin)
 
FORCEINLINE void HandleWeakReference (FWeakObjectPtr &WeakPtr, const UObject *ReferencingObject, FMemberId MemberId, EMemberType)
 
FORCENOINLINE void FlushQueuedReferences ()
 
FORCENOINLINE bool FlushToStructBlocks ()
 
FORCEINLINE_DEBUGGABLE FStructBlockifierGetStructBlocks ()
 
FORCEINLINE_DEBUGGABLE void QueueStructArray (FSchemaView Schema, uint8 *Data, int32 Num)
 
FORCEINLINE_DEBUGGABLE void QueueSparseStructArray (FSchemaView Schema, FScriptSet &Array)
 
FORCEINLINE_DEBUGGABLE void QueueReference (const UObject *ReferencingObject, UObject *&Object, FMemberId MemberId, EKillable Killable)
 
FORCEINLINE_DEBUGGABLE void QueueReferences (const UObject *ReferencingObject, TArrayView< UObject * > References, FMemberId MemberId, EKillable Killable)
 
template<class ArrayType >
FORCEINLINE_DEBUGGABLE void QueueArray (const UObject *ReferencingObject, ArrayType &&Array, FMemberId MemberId, EKillable Killable)
 
FORCEINLINE_DEBUGGABLE void QueueSet (const UObject *ReferencingObject, TSet< UObject * > &Objects, FMemberId MemberId, EKillable Killable)
 
void Suspend ()
 
void SetDebugSchemaStackMemberId (FMemberId Member)
 

Public Attributes

FWorkerContextContext
 
const FPermanentObjectPoolExtents PermanentPool
 
FReferenceCollectorCollector
 
TReferenceBatcher< FMutableReference, FResolvedMutableReference, ProcessorType > KillableBatcher
 
TReferenceBatcher< FImmutableReference, FImmutableReference, ProcessorType > ImmutableBatcher
 
FStructBatcher StructBatcher
 

Static Public Attributes

static constexpr bool bBatching = true
 
static constexpr bool bParallel = IsParallel(ProcessorType::Options)
 

Detailed Description

template<class ProcessorType>
struct UE::GC::TBatchDispatcher< ProcessorType >

Batches up references before dispatching them to the processor, unlike TDirectDispatcher

Member Typedef Documentation

◆ SchemaStackScopeType

template<class ProcessorType >
typedef FDebugSchemaStackNoOpScope UE::GC::TBatchDispatcher< ProcessorType >::SchemaStackScopeType

Constructor & Destructor Documentation

◆ TBatchDispatcher()

template<class ProcessorType >
UE::GC::TBatchDispatcher< ProcessorType >::TBatchDispatcher ( FWorkerContext InContext,
FReferenceCollector InCollector 
)
inlineexplicit

Member Function Documentation

◆ FlushQueuedReferences()

template<class ProcessorType >
FORCENOINLINE void UE::GC::TBatchDispatcher< ProcessorType >::FlushQueuedReferences ( )
inline

◆ FlushToStructBlocks()

template<class ProcessorType >
FORCENOINLINE bool UE::GC::TBatchDispatcher< ProcessorType >::FlushToStructBlocks ( )
inline

◆ GetStructBlocks()

template<class ProcessorType >
FORCEINLINE_DEBUGGABLE FStructBlockifier & UE::GC::TBatchDispatcher< ProcessorType >::GetStructBlocks ( )
inline

◆ HandleImmutableReference()

template<class ProcessorType >
FORCEINLINE void UE::GC::TBatchDispatcher< ProcessorType >::HandleImmutableReference ( UObject Object,
FMemberId  MemberId,
EOrigin  Origin 
)
inline

◆ HandleKillableArray()

template<class ProcessorType >
template<class ArrayType >
FORCEINLINE void UE::GC::TBatchDispatcher< ProcessorType >::HandleKillableArray ( ArrayType &&  Array,
FMemberId  MemberId,
EOrigin  Origin 
)
inline

◆ HandleKillableReference()

template<class ProcessorType >
FORCEINLINE_DEBUGGABLE void UE::GC::TBatchDispatcher< ProcessorType >::HandleKillableReference ( UObject *&  Object,
FMemberId  MemberId,
EOrigin  Origin 
)
inline

◆ HandleKillableReferences()

template<class ProcessorType >
FORCEINLINE void UE::GC::TBatchDispatcher< ProcessorType >::HandleKillableReferences ( TArrayView< UObject * >  Objects,
FMemberId  MemberId,
EOrigin  Origin 
)
inline

◆ HandleReferenceDirectly() [1/2]

template<class ProcessorType >
FORCENOINLINE void UE::GC::TBatchDispatcher< ProcessorType >::HandleReferenceDirectly ( const UObject ReferencingObject,
UObject *&  Object,
FMemberId  MemberId,
EKillable  Killable 
)
inline

◆ HandleReferenceDirectly() [2/2]

template<class ProcessorType >
FORCEINLINE void UE::GC::TBatchDispatcher< ProcessorType >::HandleReferenceDirectly ( const UObject ReferencingObject,
UObject *&  Object,
FMemberId  MemberId,
EOrigin  Origin,
bool  bAllowReferenceElimination 
)
inline

◆ HandleWeakReference()

template<class ProcessorType >
FORCEINLINE void UE::GC::TBatchDispatcher< ProcessorType >::HandleWeakReference ( FWeakObjectPtr WeakPtr,
const UObject ReferencingObject,
FMemberId  MemberId,
EMemberType   
)
inline

◆ QueueArray()

template<class ProcessorType >
template<class ArrayType >
FORCEINLINE_DEBUGGABLE void UE::GC::TBatchDispatcher< ProcessorType >::QueueArray ( const UObject ReferencingObject,
ArrayType &&  Array,
FMemberId  MemberId,
EKillable  Killable 
)
inline

◆ QueueReference()

template<class ProcessorType >
FORCEINLINE_DEBUGGABLE void UE::GC::TBatchDispatcher< ProcessorType >::QueueReference ( const UObject ReferencingObject,
UObject *&  Object,
FMemberId  MemberId,
EKillable  Killable 
)
inline

◆ QueueReferences()

template<class ProcessorType >
FORCEINLINE_DEBUGGABLE void UE::GC::TBatchDispatcher< ProcessorType >::QueueReferences ( const UObject ReferencingObject,
TArrayView< UObject * >  References,
FMemberId  MemberId,
EKillable  Killable 
)
inline

◆ QueueSet()

template<class ProcessorType >
FORCEINLINE_DEBUGGABLE void UE::GC::TBatchDispatcher< ProcessorType >::QueueSet ( const UObject ReferencingObject,
TSet< UObject * > &  Objects,
FMemberId  MemberId,
EKillable  Killable 
)
inline

◆ QueueSparseStructArray()

template<class ProcessorType >
FORCEINLINE_DEBUGGABLE void UE::GC::TBatchDispatcher< ProcessorType >::QueueSparseStructArray ( FSchemaView  Schema,
FScriptSet Array 
)
inline

◆ QueueStructArray()

template<class ProcessorType >
FORCEINLINE_DEBUGGABLE void UE::GC::TBatchDispatcher< ProcessorType >::QueueStructArray ( FSchemaView  Schema,
uint8 Data,
int32  Num 
)
inline

◆ SetDebugSchemaStackMemberId()

template<class ProcessorType >
void UE::GC::TBatchDispatcher< ProcessorType >::SetDebugSchemaStackMemberId ( FMemberId  Member)
inline

◆ Suspend()

template<class ProcessorType >
void UE::GC::TBatchDispatcher< ProcessorType >::Suspend ( )
inline

◆ UE_NONCOPYABLE()

template<class ProcessorType >
UE::GC::TBatchDispatcher< ProcessorType >::UE_NONCOPYABLE ( TBatchDispatcher< ProcessorType >  )

Member Data Documentation

◆ bBatching

template<class ProcessorType >
constexpr bool UE::GC::TBatchDispatcher< ProcessorType >::bBatching = true
staticconstexpr

◆ bParallel

template<class ProcessorType >
constexpr bool UE::GC::TBatchDispatcher< ProcessorType >::bParallel = IsParallel(ProcessorType::Options)
staticconstexpr

◆ Collector

template<class ProcessorType >
FReferenceCollector& UE::GC::TBatchDispatcher< ProcessorType >::Collector

◆ Context

template<class ProcessorType >
FWorkerContext& UE::GC::TBatchDispatcher< ProcessorType >::Context

◆ ImmutableBatcher

template<class ProcessorType >
TReferenceBatcher<FImmutableReference, FImmutableReference, ProcessorType> UE::GC::TBatchDispatcher< ProcessorType >::ImmutableBatcher

◆ KillableBatcher

template<class ProcessorType >
TReferenceBatcher<FMutableReference, FResolvedMutableReference, ProcessorType> UE::GC::TBatchDispatcher< ProcessorType >::KillableBatcher

◆ PermanentPool

template<class ProcessorType >
const FPermanentObjectPoolExtents UE::GC::TBatchDispatcher< ProcessorType >::PermanentPool

◆ StructBatcher

template<class ProcessorType >
FStructBatcher UE::GC::TBatchDispatcher< ProcessorType >::StructBatcher

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