80template <
typename SharedObjectType>
109 if (--(holder.refCount) == 0)
110 holder.sharedInstance =
nullptr;
138 static void* holder [(
sizeof (
SharedObjectHolder) +
sizeof(
void*) - 1) /
sizeof(
void*)] = {
nullptr };
149 if (++(holder.refCount) == 1)
150 holder.sharedInstance.reset (
new SharedObjectType());
#define noexcept
Definition DistrhoDefines.h:72
~SharedResourcePointer()
Definition juce_SharedResourcePointer.h:104
SharedResourcePointer(const SharedResourcePointer &)
Definition juce_SharedResourcePointer.h:95
int getReferenceCount() const noexcept
Definition juce_SharedResourcePointer.h:126
SharedObjectType & getObject() const noexcept
Definition juce_SharedResourcePointer.h:120
Direct2DFactories * sharedObject
Definition juce_SharedResourcePointer.h:142
SharedResourcePointer()
Definition juce_SharedResourcePointer.h:90
SharedObjectType & get() const noexcept
Definition juce_SharedResourcePointer.h:117
static SharedObjectHolder & getSharedObjectHolder() noexcept
Definition juce_SharedResourcePointer.h:136
void initialise()
Definition juce_SharedResourcePointer.h:144
SharedObjectType * operator->() const noexcept
Definition juce_SharedResourcePointer.h:123
Definition juce_SpinLock.h:42
GenericScopedLock< SpinLock > ScopedLockType
Definition juce_SpinLock.h:73
#define JUCE_LEAK_DETECTOR(OwnerClass)
Definition juce_LeakedObjectDetector.h:138
Definition carla_juce.cpp:31
Definition juce_SharedResourcePointer.h:130
std::unique_ptr< SharedObjectType > sharedInstance
Definition juce_SharedResourcePointer.h:132
int refCount
Definition juce_SharedResourcePointer.h:133
SpinLock lock
Definition juce_SharedResourcePointer.h:131
#define const
Definition zconf.h:137