Quick Links: |
#include <bsls_atomic.h>
This class is implements an atomic 64-bit integer, which supports common integer operations in a way that is guaranteed to be atomic. Operations on objects of this class provide the sequential consistency memory ordering guarantee unless explicitly qualified with a less strict consistency guarantee suffix (i.e., Acquire, Release, AcqRel or Relaxed).
bsls::AtomicInt64::AtomicInt64 | ( | ) |
Create an atomic 64-bit integer object having the default value 0.
bsls::AtomicInt64::AtomicInt64 | ( | Types::Int64 | value | ) |
Create an atomic 64-bit integer object having the specified value
.
bsls::AtomicInt64::~AtomicInt64 | ( | ) |
Destroy this atomic 64-bit integer object.
AtomicInt64& bsls::AtomicInt64::operator= | ( | Types::Int64 | value | ) |
Atomically assign the specified value
to this object, and return a reference offering modifiable access to this
object.
Types::Int64 bsls::AtomicInt64::operator+= | ( | Types::Int64 | value | ) |
Atomically add the specified value
to this object, and return the resulting value.
Types::Int64 bsls::AtomicInt64::operator-= | ( | Types::Int64 | value | ) |
Atomically subtract the specified value
from this object, and return the resulting value.
Types::Int64 bsls::AtomicInt64::operator++ | ( | ) |
Atomically increment the value of this object by 1 and return the resulting value.
Types::Int64 bsls::AtomicInt64::operator++ | ( | int | ) |
Atomically increment the value of this object by 1 and return the value prior to being incremented.
Types::Int64 bsls::AtomicInt64::operator-- | ( | ) |
Atomically decrement the value of this object by 1 and return the resulting value.
Types::Int64 bsls::AtomicInt64::operator-- | ( | int | ) |
Atomically decrement the value of this object by 1 and return the value prior to being decremented.
Types::Int64 bsls::AtomicInt64::add | ( | Types::Int64 | value | ) |
Atomically add the specified value
to this object and return the resulting value.
Types::Int64 bsls::AtomicInt64::addAcqRel | ( | Types::Int64 | value | ) |
Atomically add the specified value
to this object and return the resulting value, providing the acquire/release memory ordering guarantee.
Types::Int64 bsls::AtomicInt64::addRelaxed | ( | Types::Int64 | value | ) |
Atomically add the specified value
to this object and return the resulting value, providing the relaxed memory ordering guarantee.
void bsls::AtomicInt64::store | ( | Types::Int64 | value | ) |
Atomically assign the specified value
to this object, providing the sequential consistency memory ordering guarantee.
void bsls::AtomicInt64::storeRelaxed | ( | Types::Int64 | value | ) |
Atomically assign the specified value
to this object, providing the relaxed memory ordering guarantee.
void bsls::AtomicInt64::storeRelease | ( | Types::Int64 | value | ) |
Atomically assign the specified value
to this object, providing the release memory ordering guarantee.
Types::Int64 bsls::AtomicInt64::subtract | ( | Types::Int64 | value | ) |
Atomically subtract the specified value
to this object and return the resulting value.
Types::Int64 bsls::AtomicInt64::subtractAcqRel | ( | Types::Int64 | value | ) |
Atomically subtract the specified value
to this object and return the resulting value, providing the acquire/release memory ordering guarantee.
Types::Int64 bsls::AtomicInt64::subtractRelaxed | ( | Types::Int64 | value | ) |
Atomically subtract the specified value
to this object and return the resulting value, providing the relaxed memory ordering guarantee.
Types::Int64 bsls::AtomicInt64::swap | ( | Types::Int64 | swapValue | ) |
Atomically set the value of this object to the specified swapValue
and return its previous value.
Types::Int64 bsls::AtomicInt64::swapAcqRel | ( | Types::Int64 | swapValue | ) |
Atomically set the value of this object to the specified swapValue
and return its previous value, providing the acquire/release memory ordering guarantee.
Types::Int64 bsls::AtomicInt64::testAndSwap | ( | Types::Int64 | compareValue, | |
Types::Int64 | swapValue | |||
) |
Compare the value of this object to the specified compareValue
. If they are equal, set the value of this atomic integer to the specified swapValue
, otherwise leave this value unchanged. Return the previous value of this atomic integer, whether or not the swap occurred. Note that the entire test-and-swap operation is performed atomically.
Types::Int64 bsls::AtomicInt64::testAndSwapAcqRel | ( | Types::Int64 | compareValue, | |
Types::Int64 | swapValue | |||
) |
Compare the value of this object to the specified compareValue
. If they are equal, set the value of this atomic integer to the specified swapValue
, otherwise leave this value unchanged. Return the previous value of this atomic integer, whether or not the swap occurred. Note that the entire test-and-swap operation is performed atomically and it provides the acquire/release memory ordering guarantee.
bsls::AtomicInt64::operator Types::Int64 | ( | ) | const |
Return the current value of this object.
Types::Int64 bsls::AtomicInt64::load | ( | ) | const |
Return the current value of this object.
Types::Int64 bsls::AtomicInt64::loadAcquire | ( | ) | const |
Return the current value of this object, providing the acquire memory ordering guarantee.
Types::Int64 bsls::AtomicInt64::loadRelaxed | ( | ) | const |
Return the current value of this object, providing the relaxed memory ordering guarantee.