OpenShot Audio Library | OpenShotAudio: juce::Atomic< Type > Struct Template Reference

OpenShot Audio Library | OpenShotAudio 0.3.1

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
juce::Atomic< Type > Struct Template Referencefinal

`#include <juce_Atomic.h>`

## Public Types
using | DiffType = typename AtomicHelpers::DiffTypeHelper< Type >::Type

## Public Member Functions
| Atomic () noexcept
| Atomic (Type initialValue) noexcept
| Atomic (const Atomic &other) noexcept
| ~Atomic () noexcept
Type | get () const noexcept
void | set (Type newValue) noexcept
Type | exchange (Type newValue) noexcept
bool | compareAndSetBool (Type newValue, Type valueToCompare) noexcept
Atomic< Type > & | operator= (const Atomic &other) noexcept
Atomic< Type > & | operator= (Type newValue) noexcept
Type | operator+= (DiffType amountToAdd) noexcept
Type | operator-= (DiffType amountToSubtract) noexcept
Type | operator++ () noexcept
Type | operator-- () noexcept
void | memoryBarrier () noexcept
| JUCE_DEPRECATED (Type compareAndSetValue(Type, Type) noexcept)

## Public Attributes
std::atomic< Type > | value

## Detailed Description

template<typename Type>
struct juce::Atomic< Type >

A simple wrapper around std::atomic.

Definition at line 41 of file juce_Atomic.h.

## Member Typedef Documentation

## ◆ DiffType

template<typename Type >

using juce::Atomic< Type >::DiffType = typename AtomicHelpers::DiffTypeHelper<Type>::Type

Definition at line 43 of file juce_Atomic.h.

## Constructor & Destructor Documentation

## ◆ Atomic() [1/3]

template<typename Type >

juce::Atomic< Type >::Atomic | ( |  | ) |
| inlinenoexcept

Creates a new value, initialised to zero.

Definition at line 46 of file juce_Atomic.h.

## ◆ Atomic() [2/3]

template<typename Type >

juce::Atomic< Type >::Atomic | ( | Type | initialValue | ) |
| inlinenoexcept

Creates a new value, with a given initial value.

Definition at line 49 of file juce_Atomic.h.

## ◆ Atomic() [3/3]

template<typename Type >

juce::Atomic< Type >::Atomic | ( | const Atomic< Type > & | other | ) |
| inlinenoexcept

Copies another value (atomically).

Definition at line 52 of file juce_Atomic.h.

## ◆ ~Atomic()

template<typename Type >

juce::Atomic< Type >::~Atomic | ( |  | ) |
| inlinenoexcept

Destructor.

Definition at line 55 of file juce_Atomic.h.

## Member Function Documentation

## ◆ compareAndSetBool()

template<typename Type >

bool juce::Atomic< Type >::compareAndSetBool | ( | Type | newValue,
|  | Type | valueToCompare
| ) |  |
| inlinenoexcept

Atomically compares this value with a target value, and if it is equal, sets this to be equal to a new value.

This operation is the atomic equivalent of doing this:

bool compareAndSetBool (Type newValue, Type valueToCompare)
{
if (get() == valueToCompare)
{
set (newValue);
return true;
}
return false;
}
juce::Atomic::get
Type get() const noexcept
Definition: juce_Atomic.h:64
juce::Atomic::set
void set(Type newValue) noexcept
Definition: juce_Atomic.h:67
juce::Atomic::compareAndSetBool
bool compareAndSetBool(Type newValue, Type valueToCompare) noexcept
Definition: juce_Atomic.h:96

Internally, this method calls std::atomic::compare_exchange_strong with memory_order_seq_cst (the strictest std::memory_order).

Returns
  true if the comparison was true and the value was replaced; false if the comparison failed and the value was left unchanged.

See also
  compareAndSetValue

Definition at line 96 of file juce_Atomic.h.

Referenced by juce::ThreadLocalValue< Type >::get().

## ◆ exchange()

template<typename Type >

Type juce::Atomic< Type >::exchange | ( | Type | newValue | ) |
| inlinenoexcept

Atomically sets the current value, returning the value that was replaced.

Definition at line 70 of file juce_Atomic.h.

## ◆ get()

template<typename Type >

Type juce::Atomic< Type >::get | ( |  | ) | const
| inlinenoexcept

Atomically reads and returns the current value.

Definition at line 64 of file juce_Atomic.h.

Referenced by juce::MessageManager::currentThreadHasLockedMessageManager(), juce::ThreadLocalValue< Type >::get(), juce::AbstractFifo::getNumReady(), juce::Thread::getThreadId(), juce::Thread::isThreadRunning(), juce::ThreadLocalValue< Type >::releaseCurrentThreadStorage(), juce::MessageManager::runDispatchLoop(), juce::Thread::setPriority(), juce::Thread::startThread(), juce::Thread::threadShouldExit(), and juce::ThreadLocalValue< Type >::~ThreadLocalValue().

## ◆ memoryBarrier()

template<typename Type >

void juce::Atomic< Type >::memoryBarrier | ( |  | ) |
| inlinenoexcept

Implements a memory read/write barrier.

Internally this calls std::atomic_thread_fence with memory_order_seq_cst (the strictest std::memory_order).

Definition at line 132 of file juce_Atomic.h.

## ◆ operator++()

template<typename Type >

Type juce::Atomic< Type >::operator++ | ( |  | ) |
| inlinenoexcept

Atomically increments this value, returning the new value.

Definition at line 122 of file juce_Atomic.h.

## ◆ operator+=()

template<typename Type >

Type juce::Atomic< Type >::operator+= | ( | DiffType | amountToAdd | ) |
| inlinenoexcept

Atomically adds a number to this value, returning the new value.

Definition at line 116 of file juce_Atomic.h.

## ◆ operator--()

template<typename Type >

Type juce::Atomic< Type >::operator-- | ( |  | ) |
| inlinenoexcept

Atomically decrements this value, returning the new value.

Definition at line 125 of file juce_Atomic.h.

## ◆ operator-=()

template<typename Type >

Type juce::Atomic< Type >::operator-= | ( | DiffType | amountToSubtract | ) |
| inlinenoexcept

Atomically subtracts a number from this value, returning the new value.

Definition at line 119 of file juce_Atomic.h.

## ◆ operator=() [1/2]

template<typename Type >

Atomic< Type > & juce::Atomic< Type >::operator= | ( | const Atomic< Type > & | other | ) |
| inlinenoexcept

Copies another value into this one (atomically).

Definition at line 102 of file juce_Atomic.h.

## ◆ operator=() [2/2]

template<typename Type >

Atomic< Type > & juce::Atomic< Type >::operator= | ( | Type | newValue | ) |
| inlinenoexcept

Copies another value into this one (atomically).

Definition at line 109 of file juce_Atomic.h.

## ◆ set()

template<typename Type >

void juce::Atomic< Type >::set | ( | Type | newValue | ) |
| inlinenoexcept

Atomically sets the current value.

Definition at line 67 of file juce_Atomic.h.

## Member Data Documentation

## ◆ value

template<typename Type >

std::atomic<Type> juce::Atomic< Type >::value

The std::atomic object that this class operates on.

Definition at line 135 of file juce_Atomic.h.

Referenced by juce::Atomic< Type >::compareAndSetBool(), juce::Atomic< Type >::exchange(), juce::Atomic< Type >::get(), juce::Atomic< Type >::operator++(), juce::Atomic< Type >::operator+=(), juce::Atomic< Type >::operator--(), juce::Atomic< Type >::operator-=(), juce::Atomic< Type >::operator=(), and juce::Atomic< Type >::set().

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

- juce_Atomic.h