Quick Links: |
#include <bsls_atomicoperations_default.h>
Public Types | |
typedef Atomic_TypeTraits< IMP > | AtomicTypes |
Static Public Member Functions | |
static int | getIntAcquire (typename AtomicTypes::Int const *atomicInt) |
static int | getIntRelaxed (typename AtomicTypes::Int const *atomicInt) |
static void | initInt (typename AtomicTypes::Int *atomicInt, int initialValue=0) |
static void | setIntRelaxed (typename AtomicTypes::Int *atomicInt, int value) |
static void | setIntRelease (typename AtomicTypes::Int *atomicInt, int value) |
static int | swapIntAcqRel (typename AtomicTypes::Int *atomicInt, int swapValue) |
static int | testAndSwapIntAcqRel (typename AtomicTypes::Int *atomicInt, int compareValue, int swapValue) |
static void | addInt (typename AtomicTypes::Int *atomicInt, int value) |
static void | addIntAcqRel (typename AtomicTypes::Int *atomicInt, int value) |
static void | addIntRelaxed (typename AtomicTypes::Int *atomicInt, int value) |
static int | addIntNvAcqRel (typename AtomicTypes::Int *atomicInt, int value) |
static int | addIntNvRelaxed (typename AtomicTypes::Int *atomicInt, int value) |
static void | decrementInt (typename AtomicTypes::Int *atomicInt) |
static void | decrementIntAcqRel (typename AtomicTypes::Int *atomicInt) |
static int | decrementIntNv (typename AtomicTypes::Int *atomicInt) |
static int | decrementIntNvAcqRel (typename AtomicTypes::Int *atomicInt) |
static void | incrementInt (typename AtomicTypes::Int *atomicInt) |
static void | incrementIntAcqRel (typename AtomicTypes::Int *atomicInt) |
static int | incrementIntNv (typename AtomicTypes::Int *atomicInt) |
static int | incrementIntNvAcqRel (typename AtomicTypes::Int *atomicInt) |
static int | subtractIntNv (typename AtomicTypes::Int *atomicInt, int value) |
static int | subtractIntNvAcqRel (typename AtomicTypes::Int *atomicInt, int value) |
static int | subtractIntNvRelaxed (typename AtomicTypes::Int *atomicInt, int value) |
typedef Atomic_TypeTraits<IMP> bsls::AtomicOperations_DefaultInt< IMP >::AtomicTypes |
static int bsls::AtomicOperations_DefaultInt< IMP >::getIntAcquire | ( | typename AtomicTypes::Int const * | atomicInt | ) | [static] |
Atomically retrieve the value of the specified atomicInt
, providing the acquire memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::getIntRelaxed | ( | typename AtomicTypes::Int const * | atomicInt | ) | [static] |
Atomically retrieve the value of the specified atomicInt
, without providing any memory ordering guarantees.
static void bsls::AtomicOperations_DefaultInt< IMP >::initInt | ( | typename AtomicTypes::Int * | atomicInt, | |
int | initialValue = 0 | |||
) | [static] |
Initialize the specified atomicInt
and set its value to the optionally specified initialValue
.
static void bsls::AtomicOperations_DefaultInt< IMP >::setIntRelaxed | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically set the value of the specified atomicInt
to the specified value
, without providing any memory ordering guarantees.
static void bsls::AtomicOperations_DefaultInt< IMP >::setIntRelease | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically set the value of the specified atomicInt
to the specified value
, providing the release memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::swapIntAcqRel | ( | typename AtomicTypes::Int * | atomicInt, | |
int | swapValue | |||
) | [static] |
Atomically set the value of the specified atomicInt
to the specified swapValue
, and return its previous value, providing the acquire/release memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::testAndSwapIntAcqRel | ( | typename AtomicTypes::Int * | atomicInt, | |
int | compareValue, | |||
int | swapValue | |||
) | [static] |
Conditionally set the value of the specified atomicInt
to the specified swapValue
if and only if the value of atomicInt
equals the value of the specified compareValue
, and return the initial value of atomicInt
, providing the acquire/release memory ordering guarantee. The whole operation is performed atomically.
static void bsls::AtomicOperations_DefaultInt< IMP >::addInt | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
, providing the sequential consistency memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt< IMP >::addIntAcqRel | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
, providing the acquire/release memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt< IMP >::addIntRelaxed | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
, without providing any memory ordering guarantees.
static int bsls::AtomicOperations_DefaultInt< IMP >::addIntNvAcqRel | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
and return the resulting value, providing the acquire/release memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::addIntNvRelaxed | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
and return the resulting value, without providing any memory ordering guarantees.
static void bsls::AtomicOperations_DefaultInt< IMP >::decrementInt | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically decrement the value of the specified atomicInt
by 1, providing the sequential consistency memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt< IMP >::decrementIntAcqRel | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically decrement the value of the specified atomicInt
by 1, providing the acquire/release memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::decrementIntNv | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically decrement the specified atomicInt
by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::decrementIntNvAcqRel | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically decrement the specified atomicInt
by 1 and return the resulting value, providing the acquire/release memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt< IMP >::incrementInt | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically increment the value of the specified atomicInt
by 1, providing the sequential consistency memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt< IMP >::incrementIntAcqRel | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically increment the value of the specified atomicInt
by 1, providing the acquire/release memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::incrementIntNv | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically increment the specified atomicInt
by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::incrementIntNvAcqRel | ( | typename AtomicTypes::Int * | atomicInt | ) | [static] |
Atomically increment the specified atomicInt
by 1 and return the resulting value, providing the acquire/release memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::subtractIntNv | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically subtract from the specified atomicInt
the specified value
and return the resulting value, providing the sequential consistency memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::subtractIntNvAcqRel | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically subtract from the specified atomicInt
the specified value
and return the resulting value, providing the acquire/release memory ordering guarantee.
static int bsls::AtomicOperations_DefaultInt< IMP >::subtractIntNvRelaxed | ( | typename AtomicTypes::Int * | atomicInt, | |
int | value | |||
) | [static] |
Atomically subtract from the specified atomicInt
the specified value
and return the resulting value, without providing any memory ordering guarantees.