Quick Links:

bal | bbl | bdl | bsl

Public Types | Static Public Member Functions

bsls::AtomicOperations_DefaultPointer32< IMP > Struct Template Reference

#include <bsls_atomicoperations_default.h>

Inheritance diagram for bsls::AtomicOperations_DefaultPointer32< IMP >:
bsls::AtomicOperations_Default32< IMP >

List of all members.

Public Types

typedef Atomic_TypeTraits< IMP > AtomicTypes

Static Public Member Functions

static void * getPtr (typename AtomicTypes::Pointer const *atomicPtr)
static void * getPtrAcquire (typename AtomicTypes::Pointer const *atomicPtr)
static void * getPtrRelaxed (typename AtomicTypes::Pointer const *atomicPtr)
static void initPointer (typename AtomicTypes::Pointer *atomicPtr, void *initialValue=0)
static void setPtr (typename AtomicTypes::Pointer *atomicPtr, void *value)
static void setPtrRelaxed (typename AtomicTypes::Pointer *atomicPtr, void *value)
static void setPtrRelease (typename AtomicTypes::Pointer *atomicPtr, void *value)
static void * swapPtr (typename AtomicTypes::Pointer *atomicPtr, void *swapValue)
static void * swapPtrAcqRel (typename AtomicTypes::Pointer *atomicPtr, void *swapValue)
static void * testAndSwapPtr (typename AtomicTypes::Pointer *atomicPtr, void *compareValue, void *swapValue)
static void * testAndSwapPtrAcqRel (typename AtomicTypes::Pointer *atomicPtr, void *compareValue, void *swapValue)

template<class IMP>
struct bsls::AtomicOperations_DefaultPointer32< IMP >


Member Typedef Documentation

template<class IMP >
typedef Atomic_TypeTraits<IMP> bsls::AtomicOperations_DefaultPointer32< IMP >::AtomicTypes

Member Function Documentation

template<class IMP >
static void* bsls::AtomicOperations_DefaultPointer32< IMP >::getPtr ( typename AtomicTypes::Pointer const *  atomicPtr  )  [static]

Atomically retrieve the value of the specified atomicPtr, providing the sequential consistency memory ordering guarantee.

template<class IMP >
static void* bsls::AtomicOperations_DefaultPointer32< IMP >::getPtrAcquire ( typename AtomicTypes::Pointer const *  atomicPtr  )  [static]

Atomically retrieve the value of the specified atomicPtr, providing the acquire memory ordering guarantee.

template<class IMP >
static void* bsls::AtomicOperations_DefaultPointer32< IMP >::getPtrRelaxed ( typename AtomicTypes::Pointer const *  atomicPtr  )  [static]

Atomically retrieve the value of the specified atomicPtr, without providing any memory ordering guarantees.

template<class IMP >
static void bsls::AtomicOperations_DefaultPointer32< IMP >::initPointer ( typename AtomicTypes::Pointer *  atomicPtr,
void *  initialValue = 0 
) [static]

Initialize the specified atomicPtr and set its value to the optionally specified initialValue.

template<class IMP >
static void bsls::AtomicOperations_DefaultPointer32< IMP >::setPtr ( typename AtomicTypes::Pointer *  atomicPtr,
void *  value 
) [static]

Atomically set the value of the specified atomicPtr to the specified value, providing the sequential consistency memory ordering guarantee.

template<class IMP >
static void bsls::AtomicOperations_DefaultPointer32< IMP >::setPtrRelaxed ( typename AtomicTypes::Pointer *  atomicPtr,
void *  value 
) [static]

Atomically set the value of the specified atomicPtr to the specified value, without providing any memory ordering guarantees.

template<class IMP >
static void bsls::AtomicOperations_DefaultPointer32< IMP >::setPtrRelease ( typename AtomicTypes::Pointer *  atomicPtr,
void *  value 
) [static]

Atomically set the value of the specified atomicPtr to the specified value, providing the release memory ordering guarantee.

template<class IMP >
static void* bsls::AtomicOperations_DefaultPointer32< IMP >::swapPtr ( typename AtomicTypes::Pointer *  atomicPtr,
void *  swapValue 
) [static]

Atomically set the value of the specified atomicPtr to the specified swapValue, and return its previous value, providing the sequential consistency memory ordering guarantee.

template<class IMP >
static void* bsls::AtomicOperations_DefaultPointer32< IMP >::swapPtrAcqRel ( typename AtomicTypes::Pointer *  atomicPtr,
void *  swapValue 
) [static]

Atomically set the value of the specified atomicPtr to the specified swapValue, and return its previous value, providing the acquire/release memory ordering guarantee.

template<class IMP >
static void* bsls::AtomicOperations_DefaultPointer32< IMP >::testAndSwapPtr ( typename AtomicTypes::Pointer *  atomicPtr,
void *  compareValue,
void *  swapValue 
) [static]

Conditionally set the value of the specified atomicPtr to the specified swapValue if and only if the value of atomicPtr equals the value of the specified compareValue, and return the initial value of atomicPtr, providing the sequential consistency memory ordering guarantee. The whole operation is performed atomically.

template<class IMP >
static void* bsls::AtomicOperations_DefaultPointer32< IMP >::testAndSwapPtrAcqRel ( typename AtomicTypes::Pointer *  atomicPtr,
void *  compareValue,
void *  swapValue 
) [static]

Conditionally set the value of the specified atomicPtr to the specified swapValue if and only if the value of atomicPtr equals the value of the specified compareValue, and return the initial value of atomicPtr, providing the acquire/release memory ordering guarantee. The whole operation is performed atomically.


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