29 #ifndef JUCE_WEAKREFERENCE_H_INCLUDED
30 #define JUCE_WEAKREFERENCE_H_INCLUDED
81 template <
class ObjectType,
class ReferenceCountingType = ReferenceCountedObject>
100 #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
106 ObjectType*
get()
const noexcept {
return holder !=
nullptr ? holder->
get() :
nullptr; }
109 operator ObjectType*()
const noexcept {
return get(); }
139 inline ObjectType*
get()
const noexcept {
return owner; }
143 ObjectType*
volatile owner;
165 jassert (sharedPointer ==
nullptr || sharedPointer->
get() ==
nullptr);
173 if (sharedPointer ==
nullptr)
183 return sharedPointer;
192 if (sharedPointer !=
nullptr)
193 sharedPointer->clearPointer();
205 static inline SharedPointer* getRef (ObjectType*
const o)
207 return (o !=
nullptr) ? o->masterReference.getSharedPointer (o) :
nullptr;
212 #endif // JUCE_WEAKREFERENCE_H_INCLUDED
void clear() noexcept
Definition: juce_WeakReference.h:190
WeakReference() noexcept
Definition: juce_WeakReference.h:86
#define noexcept
Definition: juce_CompilerSupport.h:141
Definition: juce_WeakReference.h:134
~Master() noexcept
Definition: juce_WeakReference.h:161
Definition: juce_WeakReference.h:156
bool operator==(ObjectType *const object) const noexcept
Definition: juce_WeakReference.h:126
ObjectType * operator->() noexcept
Definition: juce_WeakReference.h:112
WeakReference(ObjectType *const object)
Definition: juce_WeakReference.h:89
ReferencedType * get() const noexcept
Definition: juce_ReferenceCountedObject.h:339
SharedPointer(ObjectType *const obj) noexcept
Definition: juce_WeakReference.h:137
Definition: juce_WeakReference.h:82
const ObjectType * operator->() const noexcept
Definition: juce_WeakReference.h:115
WeakReference & operator=(const WeakReference &other)
Definition: juce_WeakReference.h:95
ReferenceCountedObjectPtr< SharedPointer > SharedRef
Definition: juce_WeakReference.h:148
WeakReference(const WeakReference &other) noexcept
Definition: juce_WeakReference.h:92
Master() noexcept
Definition: juce_WeakReference.h:159
bool wasObjectDeleted() const noexcept
Definition: juce_WeakReference.h:124
bool operator!=(ObjectType *const object) const noexcept
Definition: juce_WeakReference.h:127
SharedPointer * getSharedPointer(ObjectType *const object)
Definition: juce_WeakReference.h:171
void clearPointer() noexcept
Definition: juce_WeakReference.h:140