JUCE API reference
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun > Struct Template Reference

Used by the JUCE_DECLARE_SINGLETON macros to manage a static pointer to a singleton instance. More...

Inherits MutexType.

Public Member Functions

 SingletonHolder ()=default
 
 ~SingletonHolder ()
 
Type * get ()
 Returns the current instance, or creates a new instance if there isn't one.
 
Type * getWithoutChecking ()
 Returns the current instance, or creates a new instance if there isn't one, but doesn't do any locking, or checking for recursion or error conditions.
 
void deleteInstance ()
 Deletes and resets the current instance, if there is one.
 
void clear (Type *expectedObject) noexcept
 Called by the class's destructor to clear the pointer if it is currently set to the given object.
 

Public Attributes

std::atomic< Type * > instance { nullptr }
 

Detailed Description

template<typename Type, typename MutexType, bool onlyCreateOncePerRun>
struct juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >

Used by the JUCE_DECLARE_SINGLETON macros to manage a static pointer to a singleton instance.

You generally won't use this directly, but see the macros JUCE_DECLARE_SINGLETON, JUCE_DECLARE_SINGLETON_SINGLETHREADED, JUCE_DECLARE_SINGLETON_SINGLETHREADED_MINIMAL, and JUCE_IMPLEMENT_SINGLETON for how it is intended to be used.

Constructor & Destructor Documentation

◆ SingletonHolder()

template<typename Type , typename MutexType , bool onlyCreateOncePerRun>
juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::SingletonHolder ( )
default

◆ ~SingletonHolder()

template<typename Type , typename MutexType , bool onlyCreateOncePerRun>
juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::~SingletonHolder ( )
inline

Member Function Documentation

◆ get()

template<typename Type , typename MutexType , bool onlyCreateOncePerRun>
Type * juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::get ( )
inline

◆ getWithoutChecking()

template<typename Type , typename MutexType , bool onlyCreateOncePerRun>
Type * juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::getWithoutChecking ( )
inline

Returns the current instance, or creates a new instance if there isn't one, but doesn't do any locking, or checking for recursion or error conditions.

References juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::instance.

Referenced by juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::get().

◆ deleteInstance()

template<typename Type , typename MutexType , bool onlyCreateOncePerRun>
void juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::deleteInstance ( )
inline

Deletes and resets the current instance, if there is one.

References juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::instance.

◆ clear()

template<typename Type , typename MutexType , bool onlyCreateOncePerRun>
void juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::clear ( Type *  expectedObject)
inlinenoexcept

Called by the class's destructor to clear the pointer if it is currently set to the given object.

References juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::instance.

Member Data Documentation

◆ instance

template<typename Type , typename MutexType , bool onlyCreateOncePerRun>
std::atomic<Type*> juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::instance { nullptr }

The documentation for this struct was generated from the following file: