openshot-audio  0.1.5
Public Member Functions | Protected Member Functions | Friends | List of all members
ReferenceCountedObject Class Reference

#include <juce_ReferenceCountedObject.h>

Inheritance diagram for ReferenceCountedObject:
AudioProcessorGraph::Node CurrentThreadHolder DynamicObject Font::SharedFontInternal FTFaceWrapper FTLibWrapper ImagePixelData MessageManager::MessageBase NSViewAttachment RenderingHelpers::CachedGlyphEdgeTable< RendererType > SynthesiserSound Typeface Value::ValueSource ValueTree::SharedObject var::VariantType_Array::RefCountedArray

Public Member Functions

void incReferenceCount () noexcept
 
void decReferenceCount () noexcept
 
bool decReferenceCountWithoutDeleting () noexcept
 
int getReferenceCount () const noexcept
 

Protected Member Functions

 ReferenceCountedObject ()
 
virtual ~ReferenceCountedObject ()
 
void resetReferenceCount () noexcept
 

Friends

struct ContainerDeletePolicy< ReferenceCountedObject >
 

Detailed Description

A base class which provides methods for reference-counting.

To add reference-counting to a class, derive it from this class, and use the ReferenceCountedObjectPtr class to point to it.

e.g.

class MyClass : public ReferenceCountedObject
{
void foo();
// This is a neat way of declaring a typedef for a pointer class,
// rather than typing out the full templated name each time..
};
MyClass::Ptr p = new MyClass();
MyClass::Ptr p2 = p;
p = nullptr;
p2->foo();

Once a new ReferenceCountedObject has been assigned to a pointer, be careful not to delete the object manually.

This class uses an Atomic<int> value to hold the reference count, so that it the pointers can be passed between threads safely. For a faster but non-thread-safe version, use SingleThreadedReferenceCountedObject instead.

See also
ReferenceCountedObjectPtr, ReferenceCountedArray, SingleThreadedReferenceCountedObject

Constructor & Destructor Documentation

◆ ReferenceCountedObject()

ReferenceCountedObject::ReferenceCountedObject ( )
inlineprotected

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

◆ ~ReferenceCountedObject()

virtual ReferenceCountedObject::~ReferenceCountedObject ( )
inlineprotectedvirtual

Destructor.

Member Function Documentation

◆ decReferenceCount()

void ReferenceCountedObject::decReferenceCount ( )
inlinenoexcept

Decreases the object's reference count. If the count gets to zero, the object will be deleted.

◆ decReferenceCountWithoutDeleting()

bool ReferenceCountedObject::decReferenceCountWithoutDeleting ( )
inlinenoexcept

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.

◆ getReferenceCount()

int ReferenceCountedObject::getReferenceCount ( ) const
inlinenoexcept

Returns the object's current reference count.

◆ incReferenceCount()

void ReferenceCountedObject::incReferenceCount ( )
inlinenoexcept

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.

◆ resetReferenceCount()

void ReferenceCountedObject::resetReferenceCount ( )
inlineprotectednoexcept

Resets the reference count to zero without deleting the object. You should probably never need to use this!

Friends And Related Function Documentation

◆ ContainerDeletePolicy< ReferenceCountedObject >


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