76template <
class ObjectType,
class ReferenceCountingType = ReferenceCountedObject>
120 bool operator!= (ObjectType*
object)
const noexcept {
return get() != object; }
132 inline ObjectType* get()
const noexcept {
return owner; }
133 void clearPointer()
noexcept { owner =
nullptr; }
158 jassert (sharedPointer ==
nullptr || sharedPointer->
get() ==
nullptr);
166 if (sharedPointer ==
nullptr)
173 jassert (sharedPointer->
get() !=
nullptr);
176 return sharedPointer;
185 if (sharedPointer !=
nullptr)
186 sharedPointer->clearPointer();
192 return sharedPointer ==
nullptr ? 0 : (sharedPointer->getReferenceCount() - 1);
198 JUCE_DECLARE_NON_COPYABLE (
Master)
207 return o->masterReference.getSharedPointer (
o);
234#define JUCE_DECLARE_WEAK_REFERENCEABLE(Class) \
235 struct WeakRefMaster : public juce::WeakReference<Class>::Master { ~WeakRefMaster() { this->clear(); } }; \
236 WeakRefMaster masterReference; \
237 friend class juce::WeakReference<Class>; \
ReferencedType * get() const noexcept
int getNumActiveWeakReferences() const noexcept
SharedRef getSharedPointer(ObjectType *object)
ObjectType * operator->() const noexcept
ObjectType * get() const noexcept
WeakReference(WeakReference &&other) noexcept
WeakReference & operator=(const WeakReference &other)
WeakReference(const WeakReference &other) noexcept
bool wasObjectDeleted() const noexcept
WeakReference(ObjectType *object)