Loading...
Searching...
No Matches
juce::SingleThreadedReferenceCountedObject Class Reference

Detailed Description

Adds reference-counting to an object.

This is effectively a version of the ReferenceCountedObject class, but which uses a non-atomic counter, and so is not thread-safe (but which will be more efficient). For more details on how to use it, see the ReferenceCountedObject class notes.

See also
ReferenceCountedObject, ReferenceCountedObjectPtr, ReferenceCountedArray
Inheritance diagram for juce::SingleThreadedReferenceCountedObject:

Public Member Functions

void incReferenceCount () noexcept
 Increments the object's reference count.
void decReferenceCount () noexcept
 Decreases the object's reference count.
bool decReferenceCountWithoutDeleting () noexcept
 Decreases the object's reference count.
int getReferenceCount () const noexcept
 Returns the object's current reference count.

Protected Member Functions

 SingleThreadedReferenceCountedObject ()=default
 Creates the reference-counted object (with an initial ref count of zero).
 SingleThreadedReferenceCountedObject (const SingleThreadedReferenceCountedObject &)
 Copying from another object does not affect this one's reference-count.
 SingleThreadedReferenceCountedObject (SingleThreadedReferenceCountedObject &&)
 Copying from another object does not affect this one's reference-count.
SingleThreadedReferenceCountedObjectoperator= (const SingleThreadedReferenceCountedObject &)
 Copying from another object does not affect this one's reference-count.
SingleThreadedReferenceCountedObjectoperator= (SingleThreadedReferenceCountedObject &&)
 Copying from another object does not affect this one's reference-count.
virtual ~SingleThreadedReferenceCountedObject ()
 Destructor.

Constructors and Destructors

◆ SingleThreadedReferenceCountedObject() [1/3]

juce::SingleThreadedReferenceCountedObject::SingleThreadedReferenceCountedObject ( )
protecteddefault

Creates the reference-counted object (with an initial ref count of zero).

Referenced by operator=(), operator=(), SingleThreadedReferenceCountedObject(), and SingleThreadedReferenceCountedObject().

◆ SingleThreadedReferenceCountedObject() [2/3]

juce::SingleThreadedReferenceCountedObject::SingleThreadedReferenceCountedObject ( const SingleThreadedReferenceCountedObject & )
protected

Copying from another object does not affect this one's reference-count.

References SingleThreadedReferenceCountedObject().

◆ SingleThreadedReferenceCountedObject() [3/3]

juce::SingleThreadedReferenceCountedObject::SingleThreadedReferenceCountedObject ( SingleThreadedReferenceCountedObject && )
protected

Copying from another object does not affect this one's reference-count.

References SingleThreadedReferenceCountedObject().

◆ ~SingleThreadedReferenceCountedObject()

virtual juce::SingleThreadedReferenceCountedObject::~SingleThreadedReferenceCountedObject ( )
protectedvirtual

Destructor.

References getReferenceCount().

Member Functions

◆ incReferenceCount()

void juce::SingleThreadedReferenceCountedObject::incReferenceCount ( )
noexcept

Increments the object's reference count.

This is done automatically by the smart pointer, but is public just in case it's needed for nefarious purposes.

◆ decReferenceCount()

void juce::SingleThreadedReferenceCountedObject::decReferenceCount ( )
noexcept

Decreases the object's reference count.

If the count gets to zero, the object will be deleted.

References getReferenceCount().

◆ decReferenceCountWithoutDeleting()

bool juce::SingleThreadedReferenceCountedObject::decReferenceCountWithoutDeleting ( )
noexcept

Decreases the object's reference count.

If the count gets to zero, the object will not be deleted, but this method will return true, allowing the caller to take care of deletion.

References getReferenceCount().

◆ getReferenceCount()

int juce::SingleThreadedReferenceCountedObject::getReferenceCount ( ) const
noexcept

Returns the object's current reference count.

Referenced by decReferenceCount(), decReferenceCountWithoutDeleting(), and ~SingleThreadedReferenceCountedObject().

◆ operator=() [1/2]

SingleThreadedReferenceCountedObject & juce::SingleThreadedReferenceCountedObject::operator= ( const SingleThreadedReferenceCountedObject & )
protected

Copying from another object does not affect this one's reference-count.

References SingleThreadedReferenceCountedObject().

◆ operator=() [2/2]

SingleThreadedReferenceCountedObject & juce::SingleThreadedReferenceCountedObject::operator= ( SingleThreadedReferenceCountedObject && )
protected

Copying from another object does not affect this one's reference-count.

References SingleThreadedReferenceCountedObject().

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram