Provides Bentley specific implementation of the std::atomic template class (Bentley/BeAtomic.h).
More...
Go to the source code of this file.
|
| Bentley |
| The Bentley namespace contains types defined by the Bentley Library.
|
|
Provides Bentley specific implementation of the std::atomic template class (Bentley/BeAtomic.h).
#define BE_ATOMIC_IMPL |
( |
|
UTYPE, |
|
|
|
TYPE_SUFFIX, |
|
|
|
CAST_TYPE |
|
) |
| |
Value:private:\
UTYPE volatile m_value;\
public:\
BeAtomic() : m_value(0) {;}\
BeAtomic (
UInt32 v) : m_value(v) {;}\
UTYPE operator++()
volatile {
return _InterlockedIncrement ## TYPE_SUFFIX ((CAST_TYPE
volatile*)&m_value);}\
UTYPE operator++(
int)
volatile {
return _InterlockedIncrement ## TYPE_SUFFIX ((CAST_TYPE
volatile*)&m_value)-1;}\
UTYPE operator--()
volatile {
return _InterlockedDecrement ## TYPE_SUFFIX ((CAST_TYPE
volatile*)&m_value);}\
UTYPE operator--(
int)
volatile {
return _InterlockedDecrement ## TYPE_SUFFIX ((CAST_TYPE
volatile*)&m_value)+1;}\
void store (UTYPE v)
const {
_InterlockedExchange ## TYPE_SUFFIX ((CAST_TYPE
volatile*)&m_value,v);} \
UTYPE IncrementAtomicPre () {
return _InterlockedIncrement ## TYPE_SUFFIX ((CAST_TYPE
volatile*)&m_value);}
long __cdecl _InterlockedIncrement(long volatile *)
uint32_t UInt32
Definition: Bentley.r.h:128
bstdmap & operator=(const bstdmap &__rhs)
Definition: stdcxx/bstdmap.h:170
long __cdecl _InterlockedExchange(long volatile *, long)
std::atomic work-alike for use by C++/CLI managed code
Definition: BeAtomic.h:63
long __cdecl _InterlockedDecrement(long volatile *)
long __cdecl _InterlockedCompareExchange(long volatile *, long, long)
long __cdecl _InterlockedCompareExchange |
( |
long volatile * |
, |
|
|
long |
, |
|
|
long |
|
|
) |
| |
void* __cdecl _InterlockedCompareExchangePointer |
( |
void *volatile * |
, |
|
|
void * |
, |
|
|
void * |
|
|
) |
| |
long __cdecl _InterlockedDecrement |
( |
long volatile * |
| ) |
|
long __cdecl _InterlockedExchange |
( |
long volatile * |
, |
|
|
long |
|
|
) |
| |
long __cdecl _InterlockedExchangeAdd |
( |
long volatile * |
, |
|
|
long |
|
|
) |
| |
void* __cdecl _InterlockedExchangePointer |
( |
void *volatile * |
, |
|
|
void * |
|
|
) |
| |
long __cdecl _InterlockedIncrement |
( |
long volatile * |
| ) |
|