JUCE: SingleThreadedReferenceCountedObject Class Reference

JUCE

Public Member Functions | Protected Member Functions | List of all members
SingleThreadedReferenceCountedObject Class Reference
juce_core » memory

Adds reference-counting to an object. More...

`#include <juce_ReferenceCountedObject.h>`

Inheritance diagram for SingleThreadedReferenceCountedObject:

## Public Member Functions
void | incReferenceCount () noexcept
| Increments the object's reference count. More...
void | decReferenceCount () noexcept
| Decreases the object's reference count. More...
bool | decReferenceCountWithoutDeleting () noexcept
| Decreases the object's reference count. More...
int | getReferenceCount () const noexcept
| Returns the object's current reference count. More...

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

## 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

## Constructor & Destructor Documentation

## ◆ SingleThreadedReferenceCountedObject() [1/3]

SingleThreadedReferenceCountedObject::SingleThreadedReferenceCountedObject | ( |  | ) |
| protecteddefault

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

## ◆ SingleThreadedReferenceCountedObject() [2/3]

SingleThreadedReferenceCountedObject::SingleThreadedReferenceCountedObject | ( | const SingleThreadedReferenceCountedObject & |  | ) |
| protected

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

## ◆ SingleThreadedReferenceCountedObject() [3/3]

SingleThreadedReferenceCountedObject::SingleThreadedReferenceCountedObject | ( | SingleThreadedReferenceCountedObject && |  | ) |
| protected

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

## ◆ ~SingleThreadedReferenceCountedObject()

virtual SingleThreadedReferenceCountedObject::~SingleThreadedReferenceCountedObject | ( |  | ) |
| protectedvirtual

Destructor.

References jassert.

## Member Function Documentation

## ◆ incReferenceCount()

void 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 SingleThreadedReferenceCountedObject::decReferenceCount | ( |  | ) |
| noexcept

Decreases the object's reference count.

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

References jassert.

## ◆ decReferenceCountWithoutDeleting()

bool 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 jassert.

## ◆ getReferenceCount()

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

Returns the object's current reference count.

## ◆ operator=() [1/2]

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

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

## ◆ operator=() [2/2]

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

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

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

- juce_ReferenceCountedObject.h