FUObjectAnnotationSparse

[FUObjectAnnotationSparse](API\Runtime\CoreUObject\UObject\FUObjectAnnotationSparse) is a helper class that is used to store sparse, slow, temporary, editor only, external or other low priority information about UObjects.

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

CoreUObject

Header

/Engine/Source/Runtime/CoreUObject/Public/UObject/UObjectAnnotation.h

Include

#include "UObject/UObjectAnnotation.h"

Syntax

template<typename TAnnotation, bool bAutoRemove>
class FUObjectAnnotationSparse : public FUObjectArray::FUObjectDeleteListener

Remarks

FUObjectAnnotationSparse is a helper class that is used to store sparse, slow, temporary, editor only, external or other low priority information about UObjects.

There is a notion of a default annotation and UObjects default to this annotation and this takes no storage.

Annotations are automatically cleaned up when UObjects are destroyed. Annotation are not "garbage collection aware", so it isn't safe to store pointers to other UObjects in an annotation unless external guarantees are made such that destruction of the other object removes the annotation.

Constructors

Name Description

Public function

FUObjectAnnotationSparse()

Constructor, initializes to nothing

Destructors

Name Description

Public function Virtual

~FUObjectAnnotationSparse()

Destructor, removes all annotations, which removes the annotation as a uobject destruction listener

Functions

Name Description

Public function

void

 

AddAnnotation

(
    const UObjectBase* Object,
    TAnnotation&& Annotation
)

Add an annotation to the annotation list.

Public function

void

 

AddAnnotation

(
    const UObjectBase* Object,
    const TAnnotation& Annotation
)

Public function

TAnnotation

 

GetAndRemoveAnnotation

(
    const UObjectBase* Object
)

Removes an annotation from the annotation list and returns the annotation if it had one

Public function

TAnnotation

 

GetAnnotation

(
    const UObjectBase* Object
)

Return the annotation associated with a uobject

Public function Const

const TMap< ...

 

GetAnnotationMap()

Return the annotation map. Caution, this is for low level use

Public function Virtual

void

 

NotifyUObjectDeleted

(
    const UObjectBase* Object,
    int32 Index
)

Interface for FUObjectAllocator::FUObjectDeleteListener

Public function

void

 

RemoveAllAnnotations()

Removes all annotation from the annotation list.

Public function

void

 

RemoveAnnotation

(
    const UObjectBase* Object
)

Removes an annotation from the annotation list.

Public function

void

 

Reserve

(
    int32 ExpectedNumElements
)

Reserves memory for the annotation map for the specified number of elements, used to avoid reallocations.

Overridden from FUObjectDeleteListener

Name Description

Public function Virtual

void

 

OnUObjectArrayShutdown()

Called when UObject Array is being shut down, this is where all listeners should be removed from it