Quick Links: |
#include <bsls_atomicoperations_default.h>
Public Types | |
typedef Atomic_TypeTraits< IMP > | AtomicTypes |
Static Public Member Functions | |
static Types::Int64 | getInt64Acquire (typename AtomicTypes::Int64 const *atomicInt) |
static Types::Int64 | getInt64Relaxed (typename AtomicTypes::Int64 const *atomicInt) |
static void | initInt64 (typename AtomicTypes::Int64 *atomicInt, Types::Int64 initialValue=0) |
static void | setInt64Relaxed (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static void | setInt64Release (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static Types::Int64 | swapInt64AcqRel (typename AtomicTypes::Int64 *atomicInt, Types::Int64 swapValue) |
static Types::Int64 | testAndSwapInt64AcqRel (typename AtomicTypes::Int64 *atomicInt, Types::Int64 compareValue, Types::Int64 swapValue) |
static void | addInt64 (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static void | addInt64AcqRel (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static void | addInt64Relaxed (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static Types::Int64 | addInt64NvAcqRel (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static Types::Int64 | addInt64NvRelaxed (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static void | decrementInt64 (typename AtomicTypes::Int64 *atomicInt) |
static void | decrementInt64AcqRel (typename AtomicTypes::Int64 *atomicInt) |
static Types::Int64 | decrementInt64Nv (typename AtomicTypes::Int64 *atomicInt) |
static Types::Int64 | decrementInt64NvAcqRel (typename AtomicTypes::Int64 *atomicInt) |
static void | incrementInt64 (typename AtomicTypes::Int64 *atomicInt) |
static void | incrementInt64AcqRel (typename AtomicTypes::Int64 *atomicInt) |
static Types::Int64 | incrementInt64Nv (typename AtomicTypes::Int64 *atomicInt) |
static Types::Int64 | incrementInt64NvAcqRel (typename AtomicTypes::Int64 *atomicInt) |
static Types::Int64 | subtractInt64Nv (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static Types::Int64 | subtractInt64NvAcqRel (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
static Types::Int64 | subtractInt64NvRelaxed (typename AtomicTypes::Int64 *atomicInt, Types::Int64 value) |
typedef Atomic_TypeTraits<IMP> bsls::AtomicOperations_DefaultInt64< IMP >::AtomicTypes |
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::getInt64Acquire | ( | typename AtomicTypes::Int64 const * | atomicInt | ) | [static] |
Atomically retrieve the value of the specified atomicInt
, providing the acquire memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::getInt64Relaxed | ( | typename AtomicTypes::Int64 const * | atomicInt | ) | [static] |
Atomically retrieve the value of the specified atomicInt
, without providing any memory ordering guarantees.
static void bsls::AtomicOperations_DefaultInt64< IMP >::initInt64 | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | initialValue = 0 | |||
) | [static] |
Initialize the specified atomicInt
and set its value to the optionally specified initialValue
.
static void bsls::AtomicOperations_DefaultInt64< IMP >::setInt64Relaxed | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically set the value of the specified atomicInt
to the specified value
, without providing any memory ordering guarantees.
static void bsls::AtomicOperations_DefaultInt64< IMP >::setInt64Release | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically set the value of the specified atomicInt
to the specified value
, providing the release memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::swapInt64AcqRel | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | 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 Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::testAndSwapInt64AcqRel | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | compareValue, | |||
Types::Int64 | 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 sequential consistency memory ordering guarantee. The whole operation is performed atomically.
static void bsls::AtomicOperations_DefaultInt64< IMP >::addInt64 | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
, providing the sequential consistency memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt64< IMP >::addInt64AcqRel | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
, providing the acquire/release memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt64< IMP >::addInt64Relaxed | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
, without providing any memory ordering guarantees.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::addInt64NvAcqRel | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically add to the specified atomicInt
the specified value
and return the resulting value, providing the acquire/release memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::addInt64NvRelaxed | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | 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_DefaultInt64< IMP >::decrementInt64 | ( | typename AtomicTypes::Int64 * | atomicInt | ) | [static] |
Atomically decrement the specified atomicInt
by 1, providing the sequential consistency memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt64< IMP >::decrementInt64AcqRel | ( | typename AtomicTypes::Int64 * | atomicInt | ) | [static] |
Atomically decrement the specified atomicInt
by 1, providing the acquire/release memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::decrementInt64Nv | ( | typename AtomicTypes::Int64 * | atomicInt | ) | [static] |
Atomically decrement the specified atomicInt
by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::decrementInt64NvAcqRel | ( | typename AtomicTypes::Int64 * | 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_DefaultInt64< IMP >::incrementInt64 | ( | typename AtomicTypes::Int64 * | atomicInt | ) | [static] |
Atomically increment the value of the specified atomicInt
by 1, providing the sequential consistency memory ordering guarantee.
static void bsls::AtomicOperations_DefaultInt64< IMP >::incrementInt64AcqRel | ( | typename AtomicTypes::Int64 * | atomicInt | ) | [static] |
Atomically increment the value of the specified atomicInt
by 1, providing the acquire/release memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::incrementInt64Nv | ( | typename AtomicTypes::Int64 * | atomicInt | ) | [static] |
Atomically increment the specified atomicInt
by 1 and return the resulting value, providing the sequential consistency memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::incrementInt64NvAcqRel | ( | typename AtomicTypes::Int64 * | atomicInt | ) | [static] |
Atomically increment the specified atomicInt
by 1 and return the resulting value, providing the acquire/release memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::subtractInt64Nv | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically subtract from the specified atomicInt
the specified value
and return the resulting value, providing the sequential consistency memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::subtractInt64NvAcqRel | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically subtract from the specified atomicInt
the specified value
and return the resulting value, providing the acquire/release memory ordering guarantee.
static Types::Int64 bsls::AtomicOperations_DefaultInt64< IMP >::subtractInt64NvRelaxed | ( | typename AtomicTypes::Int64 * | atomicInt, | |
Types::Int64 | value | |||
) | [static] |
Atomically subtract from the specified atomicInt
the specified value
and return the resulting value, without providing any memory ordering guarantees.