LMMS
Loading...
Searching...
No Matches
juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun > Struct Template Reference

#include <juce_Singleton.h>

Inheritance diagram for juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >:

Public Member Functions

 SingletonHolder ()=default
 ~SingletonHolder ()
Type * get ()
Type * getWithoutChecking ()
void deleteInstance ()
void clear (Type *expectedObject) noexcept

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.

@tags{Core}

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

◆ 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.

◆ 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.

◆ get()

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

Returns the current instance, or creates a new instance if there isn't one.

◆ 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.

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: