84 jassert (getReferenceCount() > 0);
96 jassert (getReferenceCount() > 0);
97 return --refCount == 0;
122 jassert (getReferenceCount() == 0);
136 friend struct ContainerDeletePolicy<ReferenceCountedObject>;
172 jassert (getReferenceCount() > 0);
184 jassert (getReferenceCount() > 0);
185 return --refCount == 0;
210 jassert (getReferenceCount() == 0);
245template <
class ObjectType>
281 : referencedObject (other.referencedObject)
283 incIfNotNull (referencedObject);
288 : referencedObject (other.referencedObject)
290 other.referencedObject =
nullptr;
296 template <
typename Convertible>
298 : referencedObject (other.get())
300 incIfNotNull (referencedObject);
309 return operator= (other.referencedObject);
316 template <
typename Convertible>
364 std::swap (referencedObject, other.referencedObject);
374 decIfNotNull (referencedObject);
387 referencedObject =
nullptr;
394 jassert (referencedObject !=
nullptr);
395 return referencedObject;
417 #if JUCE_STRICT_REFCOUNTEDPOINTER
432 [[
deprecated (
"Use the get method instead.")]]
443 o->incReferenceCount();
448 if (o !=
nullptr && o->decReferenceCountWithoutDeleting())
449 ContainerDeletePolicy<ReferencedType>::destroy (o);
456template <
typename Type>
457bool operator== (
const Type* object1,
const ReferenceCountedObjectPtr<Type>& object2)
noexcept
459 return object1 == object2.get();
463template <
typename Type>
464bool operator!= (
const Type* object1,
const ReferenceCountedObjectPtr<Type>& object2)
noexcept
466 return object1 != object2.get();
~ReferenceCountedObjectPtr()
ReferenceCountedObjectPtr & operator=(const ReferenceCountedObjectPtr &other)
ObjectType ReferencedType
bool operator!=(decltype(nullptr)) const noexcept
ReferenceCountedObjectPtr(ReferenceCountedObjectPtr &&other) noexcept
bool operator==(decltype(nullptr)) const noexcept
ReferenceCountedObjectPtr(ReferencedType *refCountedObject) noexcept
ReferenceCountedObjectPtr(ReferencedType &refCountedObject) noexcept
ReferenceCountedObjectPtr()=default
ReferenceCountedObjectPtr(const ReferenceCountedObjectPtr< Convertible > &other) noexcept
ReferenceCountedObjectPtr(decltype(nullptr)) noexcept
ReferencedType & operator*() const noexcept
ReferenceCountedObjectPtr(const ReferenceCountedObjectPtr &other) noexcept
ReferencedType * get() const noexcept
ReferenceCountedObject(const ReferenceCountedObject &) noexcept
ReferenceCountedObject(ReferenceCountedObject &&) noexcept
void resetReferenceCount() noexcept
bool decReferenceCountWithoutDeleting() noexcept
ReferenceCountedObject()=default
void incReferenceCount() noexcept
int getReferenceCount() const noexcept
void decReferenceCount() noexcept
virtual ~ReferenceCountedObject()
virtual ~SingleThreadedReferenceCountedObject()
SingleThreadedReferenceCountedObject(SingleThreadedReferenceCountedObject &&)
SingleThreadedReferenceCountedObject(const SingleThreadedReferenceCountedObject &)
SingleThreadedReferenceCountedObject()=default
void decReferenceCount() noexcept
void incReferenceCount() noexcept
int getReferenceCount() const noexcept
bool decReferenceCountWithoutDeleting() noexcept