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

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

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

- juce_core/memory/juce_Singleton.h

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 }

## Constructors and Destructors

## 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

References instance, and jassert.

## Member Functions

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

References getWithoutChecking(), instance, and jassertfalse.

## 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 instance.

Referenced by 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 instance.

## clear()

template<typename Type, typename MutexType, bool onlyCreateOncePerRun>

void juce::SingletonHolder< Type, MutexType, onlyCreateOncePerRun >::clear | ( | Type * | expectedObject | ) |

inline noexcept

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

References instance.

## Member Data Documentation

## instance

template<typename Type, typename MutexType, bool onlyCreateOncePerRun>

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

Referenced by clear(), deleteInstance(), get(), getWithoutChecking(), and ~SingletonHolder().

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited