Quick Links: |
#include <bsls_atomic.h>
Public Member Functions | |
AtomicUint () | |
AtomicUint (unsigned int value) | |
~AtomicUint () | |
AtomicUint & | operator= (unsigned int value) |
unsigned int | operator+= (unsigned int value) |
unsigned int | operator-= (unsigned int value) |
unsigned int | operator++ () |
unsigned int | operator++ (int) |
unsigned int | operator-- () |
unsigned int | operator-- (int) |
unsigned int | add (unsigned int value) |
unsigned int | addAcqRel (unsigned int value) |
unsigned int | addRelaxed (unsigned int value) |
void | store (unsigned int value) |
void | storeRelaxed (unsigned int value) |
void | storeRelease (unsigned int value) |
unsigned int | subtract (unsigned int value) |
unsigned int | subtractAcqRel (unsigned int value) |
unsigned int | subtractRelaxed (unsigned int value) |
unsigned int | swap (unsigned int swapValue) |
unsigned int | swapAcqRel (unsigned int swapValue) |
unsigned int | testAndSwap (unsigned int compareValue, unsigned int swapValue) |
unsigned int | testAndSwapAcqRel (unsigned int compareValue, unsigned int swapValue) |
operator unsigned int () const | |
unsigned int | load () const |
unsigned int | loadAcquire () const |
unsigned int | loadRelaxed () const |
This class implements an atomic unsigned integer, which supports common unsigned 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::AtomicUint::AtomicUint | ( | ) |
Create an atomic unsigned integer object having the default value 0.
bsls::AtomicUint::AtomicUint | ( | unsigned int | value | ) |
Create an atomic unsigned integer object having the specified value
.
bsls::AtomicUint::~AtomicUint | ( | ) |
Destroy this atomic unsigned integer object.
AtomicUint& bsls::AtomicUint::operator= | ( | unsigned int | value | ) |
Atomically assign the specified value
to this object, and return a reference offering modifiable access to this
object.
unsigned int bsls::AtomicUint::operator+= | ( | unsigned int | value | ) |
Atomically add the specified value
to this object, and return the resulting value.
unsigned int bsls::AtomicUint::operator-= | ( | unsigned int | value | ) |
Atomically subtract the specified value
from this object, and return the resulting value.
unsigned int bsls::AtomicUint::operator++ | ( | ) |
Atomically increment the value of this object by 1 and return the resulting value.
unsigned int bsls::AtomicUint::operator++ | ( | int | ) |
Atomically increment the value of this object by 1 and return the value prior to being incremented.
unsigned int bsls::AtomicUint::operator-- | ( | ) |
Atomically decrement the value of this object by 1 and return the resulting value.
unsigned int bsls::AtomicUint::operator-- | ( | int | ) |
Atomically decrement the value of this object by 1 and return the value prior to being decremented.
unsigned int bsls::AtomicUint::add | ( | unsigned int | value | ) |
Atomically add the specified value
to this object and return the resulting value.
unsigned int bsls::AtomicUint::addAcqRel | ( | unsigned int | value | ) |
Atomically add the specified value
to this object and return the resulting value, providing the acquire/release memory ordering guarantee.
unsigned int bsls::AtomicUint::addRelaxed | ( | unsigned int | value | ) |
Atomically add the specified value
to this object and return the resulting value, providing the relaxed memory ordering guarantee.
void bsls::AtomicUint::store | ( | unsigned int | value | ) |
Atomically assign the specified value
to this object, providing the sequential consistency memory ordering guarantee.
void bsls::AtomicUint::storeRelaxed | ( | unsigned int | value | ) |
Atomically assign the specified value
to this object, providing the relaxed memory ordering guarantee.
void bsls::AtomicUint::storeRelease | ( | unsigned int | value | ) |
Atomically assign the specified value
to this object, providing the release memory ordering guarantee.
unsigned int bsls::AtomicUint::subtract | ( | unsigned int | value | ) |
Atomically subtract the specified value
from this object and return the resulting value.
unsigned int bsls::AtomicUint::subtractAcqRel | ( | unsigned int | value | ) |
Atomically subtract the specified value
from this object and return the resulting value, providing the acquire/release memory ordering guarantee.
unsigned int bsls::AtomicUint::subtractRelaxed | ( | unsigned int | value | ) |
Atomically subtract the specified value
from this object and return the resulting value, providing the relaxed memory ordering guarantee.
unsigned int bsls::AtomicUint::swap | ( | unsigned int | swapValue | ) |
Atomically set the value of this object to the specified swapValue
and return its previous value.
unsigned int bsls::AtomicUint::swapAcqRel | ( | unsigned int | swapValue | ) |
Atomically set the value of this object to the specified swapValue
and return its previous value, providing the acquire/release memory ordering guarantee.
unsigned int bsls::AtomicUint::testAndSwap | ( | unsigned int | compareValue, | |
unsigned int | swapValue | |||
) |
Compare the value of this object to the specified compareValue
. If they are equal, set the value of this atomic unsigned integer to the specified swapValue
, otherwise leave this value unchanged. Return the previous value of this atomic unsigned integer, whether or not the swap occurred. Note that the entire test-and-swap operation is performed atomically.
unsigned int bsls::AtomicUint::testAndSwapAcqRel | ( | unsigned int | compareValue, | |
unsigned int | swapValue | |||
) |
Compare the value of this object to the specified compareValue
. If they are equal, set the value of this atomic unsigned integer to the specified swapValue
, otherwise leave this value unchanged. Return the previous value of this atomic unsigned 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::AtomicUint::operator unsigned int | ( | ) | const |
Return the current value of this object.
unsigned int bsls::AtomicUint::load | ( | ) | const |
Return the current value of this object.
unsigned int bsls::AtomicUint::loadAcquire | ( | ) | const |
Return the current value of this object, providing the acquire memory ordering guarantee.
unsigned int bsls::AtomicUint::loadRelaxed | ( | ) | const |
Return the current value of this object, providing the relaxed memory ordering guarantee.