UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FindObjectReferencers.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/Package.h"
9
17template< class T >
18class TFindObjectReferencers : public TMultiMap<T*, UObject*>
19{
20public:
21
32 : TMultiMap< T*, UObject* >()
33 {
34 TArray<UObject*> ReferencedObjects;
36
38
39 // Loop over every object to find any reference that may exist for the target objects
40 for (FThreadSafeObjectIterator It; It; ++It)
41 {
42 UObject* PotentialReferencer = *It;
43 if ( !TargetObjects.Contains(PotentialReferencer)
44 && (PackageToCheck == NULL || PotentialReferencer->IsIn(PackageToCheck))
45 && (!bIgnoreTemplates || !PotentialReferencer->IsTemplate()) )
46 {
47 FindReferencerAr.ResetPotentialReferencer(PotentialReferencer);
48
49 ReferenceCounts.Reset();
50 if ( FindReferencerAr.GetReferenceCounts(ReferenceCounts) > 0 )
51 {
52 // here we don't really care about the number of references from PotentialReferencer to the target object...just that it's a referencer
53 ReferencedObjects.Reset();
54 ReferenceCounts.GenerateKeyArray(ReferencedObjects);
55 for ( int32 RefIndex = 0; RefIndex < ReferencedObjects.Num(); RefIndex++ )
56 {
57 this->Add(static_cast<T*>(ReferencedObjects[RefIndex]), PotentialReferencer);
58 }
59 }
60 }
61 }
62 }
63
64private:
71// TMap< T*, TMultiMap<UObject*, FProperty*> > ReferenceProperties;
72};
#define NULL
Definition oodle2base.h:134
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition FindReferencersArchive.h:27
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
Definition FindObjectReferencers.h:19
TFindObjectReferencers(TArray< T * > TargetObjects, UPackage *PackageToCheck=NULL, bool bIgnoreTemplates=true, bool bFindAlsoWeakReferences=false)
Definition FindObjectReferencers.h:31
Definition UnrealString.h.inl:34
Definition UObjectIterator.h:76
COREUOBJECT_API bool IsTemplate(EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
Definition UObjectBaseUtility.cpp:290
COREUOBJECT_API bool IsIn(const UObject *SomeOuter) const
Definition UObjectBaseUtility.cpp:344
Definition Object.h:95
Definition Package.h:216