26#ifndef WATER_REFERENCECOUNTEDOBJECT_H_INCLUDED
27#define WATER_REFERENCECOUNTEDOBJECT_H_INCLUDED
225template <
class ReferenceCountedObjectClass>
260 template <
typename Convertible>
280 template <
typename Convertible>
345 o->incReferenceCount();
350 if (o !=
nullptr && o->decReferenceCountWithoutDeleting())
358template <
typename ReferenceCountedObjectClass>
361 return object1.get() == object2;
365template <
typename ReferenceCountedObjectClass>
368 return object1.get() == object2.get();
372template <
typename ReferenceCountedObjectClass>
375 return object1 == object2.get();
379template <
typename ReferenceCountedObjectClass>
382 return object1.get() != object2;
386template <
typename ReferenceCountedObjectClass>
389 return object1.get() != object2.get();
393template <
typename ReferenceCountedObjectClass>
396 return object1 != object2.get();
#define CARLA_DECLARE_NON_COPYABLE(ClassName)
Definition CarlaDefines.h:242
#define noexcept
Definition DistrhoDefines.h:72
virtual ~ReferenceCountedObject()
Definition ReferenceCountedObject.h:111
int getReferenceCount() const noexcept
Definition ReferenceCountedObject.h:101
void incReferenceCount() noexcept
Definition ReferenceCountedObject.h:74
void decReferenceCount() noexcept
Definition ReferenceCountedObject.h:82
bool decReferenceCountWithoutDeleting() noexcept
Definition ReferenceCountedObject.h:94
ReferenceCountedObject()
Definition ReferenceCountedObject.h:107
void resetReferenceCount() noexcept
Definition ReferenceCountedObject.h:120
Atomic< int > refCount
Definition ReferenceCountedObject.h:127
Definition ReferenceCountedObject.h:227
ReferenceCountedObjectPtr() noexcept
Definition ReferenceCountedObject.h:234
Sound ReferencedType
Definition ReferenceCountedObject.h:230
ReferencedType * getObject() const noexcept
Definition ReferenceCountedObject.h:329
ReferencedType * get() const noexcept
Definition ReferenceCountedObject.h:324
ReferenceCountedObjectPtr(const ReferenceCountedObjectPtr< Convertible > &other) noexcept
Definition ReferenceCountedObject.h:261
~ReferenceCountedObjectPtr()
Definition ReferenceCountedObject.h:308
ReferenceCountedObjectPtr & operator=(const ReferenceCountedObjectPtr &other)
Definition ReferenceCountedObject.h:271
ReferenceCountedObjectPtr(ReferencedType *refCountedObject) noexcept
Definition ReferenceCountedObject.h:242
static void incIfNotNull(ReferencedType *o) noexcept
Definition ReferenceCountedObject.h:342
ReferencedType * operator->() const noexcept
Definition ReferenceCountedObject.h:332
ReferencedType * referencedObject
Definition ReferenceCountedObject.h:340
ReferenceCountedObjectPtr(const ReferenceCountedObjectPtr &other) noexcept
Definition ReferenceCountedObject.h:251
static void decIfNotNull(ReferencedType *o) noexcept
Definition ReferenceCountedObject.h:348
virtual ~SingleThreadedReferenceCountedObject()
Definition ReferenceCountedObject.h:189
int refCount
Definition ReferenceCountedObject.h:197
void decReferenceCount() noexcept
Definition ReferenceCountedObject.h:161
void incReferenceCount() noexcept
Definition ReferenceCountedObject.h:153
SingleThreadedReferenceCountedObject()
Definition ReferenceCountedObject.h:186
bool decReferenceCountWithoutDeleting() noexcept
Definition ReferenceCountedObject.h:173
int getReferenceCount() const noexcept
Definition ReferenceCountedObject.h:180
#define wassert(expression)
Definition AudioSampleBuffer.h:33
bool operator==(const ReferenceCountedObjectPtr< ReferenceCountedObjectClass > &object1, ReferenceCountedObjectClass *const object2) noexcept
Definition ReferenceCountedObject.h:359
bool operator!=(const ReferenceCountedObjectPtr< ReferenceCountedObjectClass > &object1, const ReferenceCountedObjectClass *object2) noexcept
Definition ReferenceCountedObject.h:380
#define const
Definition zconf.h:137