#include <Atomic_Op_T.h>
Public Member Functions | |
ACE_Atomic_Op (void) | |
Initialize value_ to 0. | |
ACE_Atomic_Op (const TYPE &c) | |
Initialize value_ to c. | |
ACE_Atomic_Op (const ACE_Atomic_Op< ACE_LOCK, TYPE > &c) | |
Manage copying... | |
ACE_Atomic_Op < ACE_LOCK, TYPE > & | operator= (const TYPE &rhs) |
Atomically assign rhs to value_ . | |
ACE_Atomic_Op < ACE_LOCK, TYPE > & | operator= (const ACE_Atomic_Op< ACE_LOCK, TYPE > &rhs) |
Atomically assign <rhs> to value_ . | |
TYPE | operator++ (void) |
Atomically pre-increment value_ . | |
TYPE | operator++ (int) |
Atomically post-increment value_ . | |
TYPE | operator+= (const TYPE &rhs) |
Atomically increment value_ by rhs. | |
TYPE | operator-- (void) |
Atomically pre-decrement value_ . | |
TYPE | operator-- (int) |
Atomically post-decrement value_ . | |
TYPE | operator-= (const TYPE &rhs) |
Atomically decrement value_ by rhs. | |
bool | operator== (const TYPE &rhs) const |
Atomically compare value_ with rhs. | |
bool | operator!= (const TYPE &rhs) const |
Atomically compare value_ with rhs. | |
bool | operator>= (const TYPE &rhs) const |
Atomically check if value_ greater than or equal to rhs. | |
bool | operator> (const TYPE &rhs) const |
Atomically check if value_ greater than rhs. | |
bool | operator<= (const TYPE &rhs) const |
Atomically check if value_ less than or equal to rhs. | |
bool | operator< (const TYPE &rhs) const |
Atomically check if value_ less than rhs. | |
TYPE | value (void) const |
Explicitly return value_ . | |
void | dump (void) const |
Dump the state of an object. | |
ACE_LOCK & | mutex (void) |
TYPE & | value_i (void) |
Private Attributes | |
ACE_LOCK | own_mutex_ |
Type of synchronization mechanism. | |
ACE_Atomic_Op_Ex < ACE_LOCK, TYPE > | impl_ |
Underlying atomic op implementation. |
This class is described in an article in the July/August 1994 issue of the C++ Report magazine. It implements a templatized version of the Decorator pattern from the GoF book.
Certain platforms may provide a template specialization for ACE_Atomic_Op <ACE_Thread_Mutex, long> that provides optimized atomic integer operations without actually requiring a mutex.
ACE_Atomic_Op< ACE_LOCK, TYPE >::ACE_Atomic_Op | ( | void | ) | [inline] |
Initialize value_
to 0.
ACE_Atomic_Op< ACE_LOCK, TYPE >::ACE_Atomic_Op | ( | const TYPE & | c | ) | [inline] |
Initialize value_
to c.
ACE_INLINE ACE_Atomic_Op< ACE_LOCK, TYPE >::ACE_Atomic_Op | ( | const ACE_Atomic_Op< ACE_LOCK, TYPE > & | c | ) | [inline] |
Manage copying...
ACE_INLINE ACE_Atomic_Op< ACE_LOCK, TYPE > & ACE_Atomic_Op< ACE_LOCK, TYPE >::operator= | ( | const TYPE & | rhs | ) | [inline] |
Atomically assign rhs to value_
.
ACE_INLINE ACE_Atomic_Op< ACE_LOCK, TYPE > & ACE_Atomic_Op< ACE_LOCK, TYPE >::operator= | ( | const ACE_Atomic_Op< ACE_LOCK, TYPE > & | rhs | ) | [inline] |
Atomically assign <rhs> to value_
.
ACE_INLINE TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator++ | ( | void | ) | [inline] |
Atomically pre-increment value_
.
ACE_INLINE TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator++ | ( | int | ) | [inline] |
Atomically post-increment value_
.
ACE_INLINE TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator+= | ( | const TYPE & | rhs | ) | [inline] |
Atomically increment value_
by rhs.
ACE_INLINE TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator-- | ( | void | ) | [inline] |
Atomically pre-decrement value_
.
ACE_INLINE TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator-- | ( | int | ) | [inline] |
Atomically post-decrement value_
.
ACE_INLINE TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator-= | ( | const TYPE & | rhs | ) | [inline] |
Atomically decrement value_
by rhs.
ACE_INLINE bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator== | ( | const TYPE & | rhs | ) | const [inline] |
Atomically compare value_
with rhs.
ACE_INLINE bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator!= | ( | const TYPE & | rhs | ) | const [inline] |
Atomically compare value_
with rhs.
ACE_INLINE bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator>= | ( | const TYPE & | rhs | ) | const [inline] |
Atomically check if value_
greater than or equal to rhs.
ACE_INLINE bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator> | ( | const TYPE & | rhs | ) | const [inline] |
Atomically check if value_
greater than rhs.
ACE_INLINE bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator<= | ( | const TYPE & | rhs | ) | const [inline] |
Atomically check if value_
less than or equal to rhs.
ACE_INLINE bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator< | ( | const TYPE & | rhs | ) | const [inline] |
Atomically check if value_
less than rhs.
ACE_INLINE TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::value | ( | void | ) | const [inline] |
Explicitly return value_
.
ACE_INLINE void ACE_Atomic_Op< ACE_LOCK, TYPE >::dump | ( | void | ) | const [inline] |
Dump the state of an object.
ACE_INLINE ACE_LOCK & ACE_Atomic_Op< ACE_LOCK, TYPE >::mutex | ( | void | ) | [inline] |
Returns a reference to the underlying <ACE_LOCK>. This makes it possible to acquire the lock explicitly, which can be useful in some cases if you instantiate the ACE_Atomic_Op with an ACE_Recursive_Mutex or ACE_Process_Mutex.
ACE_INLINE TYPE & ACE_Atomic_Op< ACE_LOCK, TYPE >::value_i | ( | void | ) | [inline] |
Explicitly return value_
(by reference). This gives the user full, unrestricted access to the underlying value. This method will usually be used in conjunction with explicit access to the lock. Use with care ;-)
ACE_LOCK ACE_Atomic_Op< ACE_LOCK, TYPE >::own_mutex_ [private] |
Type of synchronization mechanism.
ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> ACE_Atomic_Op< ACE_LOCK, TYPE >::impl_ [private] |
Underlying atomic op implementation.