struct
TSharedControlBlock
template<ThreadSafetyPolicy ThreadSafety>Public
Methods
GetStrongReferenceCount
Returns the number of currently held strong references.
IncrementStrongReferenceCount
Increments the strong reference count.
As long as strong reference count is non-zero the owned object will be kept alive.
DecrementStrongReferenceCount
Decrements the strong reference count.
If the strong reference count reaches zero the owned object will be destroyed. Additionally if there are no weak resource handles alive either, control block data will be destroyed.
IncrementWeakReferenceCount
Increments the weak reference count.
This keeps the control block data alive, but not the owned object itself.
DecrementWeakReferenceCount
Decrements the weak reference count.
If this was the last weak reference and there are no strong references either, control block data will be destroyed.
IncrementStrongReferenceCountIfNonZero
Increments the strong reference count, but only if it is not already at zero.
Returns true if incremented.
DestroyOwnedObject
Destroys the object the control block is pointing to.
DestroySelf
Destroys the control block.
Protected
Constructors
Private
Fields
StrongReferenceCount
References keeping the object alive (strong handles).
WeakReferenceCount
References keeping the control block data alive (weak handles + 1 if any strong handle is alive).