ACE
6.1.0
|
Transparently parameterizes synchronization into basic arithmetic operations. More...
#include <Atomic_Op_T.h>
Public Types | |
typedef ACE_Type_Traits< TYPE > ::parameter_type | arg_type |
Public Member Functions | |
ACE_Atomic_Op (void) | |
Initialize value_ to 0. | |
ACE_Atomic_Op (arg_type c) | |
Initialize value_ to c. | |
ACE_Atomic_Op (ACE_Atomic_Op< ACE_LOCK, TYPE > const &c) | |
Manage copying... | |
ACE_Atomic_Op< ACE_LOCK, TYPE > & | operator= (arg_type rhs) |
Atomically assign rhs to value_ . | |
ACE_Atomic_Op< ACE_LOCK, TYPE > & | operator= (ACE_Atomic_Op< ACE_LOCK, TYPE > const &rhs) |
Atomically assign rhs to value_ . | |
TYPE | operator++ (void) |
Atomically pre-increment value_ . | |
TYPE | operator++ (int) |
Atomically post-increment value_ . | |
TYPE | operator+= (arg_type rhs) |
Atomically increment value_ by rhs. | |
TYPE | operator-- (void) |
Atomically pre-decrement value_ . | |
TYPE | operator-- (int) |
Atomically post-decrement value_ . | |
TYPE | operator-= (arg_type rhs) |
Atomically decrement value_ by rhs. | |
bool | operator== (arg_type rhs) const |
Atomically compare value_ with rhs. | |
bool | operator!= (arg_type rhs) const |
Atomically compare value_ with rhs. | |
bool | operator>= (arg_type rhs) const |
Atomically check if value_ greater than or equal to rhs. | |
bool | operator> (arg_type rhs) const |
Atomically check if value_ greater than rhs. | |
bool | operator<= (arg_type rhs) const |
Atomically check if value_ less than or equal to rhs. | |
bool | operator< (arg_type rhs) const |
Atomically check if value_ less than rhs. | |
TYPE | exchange (TYPE newval) |
Exchange value with newval. | |
TYPE | value (void) const |
Explicitly return value_ . | |
void | dump (void) const |
Dump the state of an object. | |
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. |
Transparently parameterizes synchronization into basic arithmetic operations.
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.
typedef ACE_Type_Traits<TYPE>::parameter_type ACE_Atomic_Op< ACE_LOCK, TYPE >::arg_type |
ACE_Atomic_Op< ACE_LOCK, TYPE >::ACE_Atomic_Op | ( | void | ) |
Initialize value_
to 0.
ACE_Atomic_Op< ACE_LOCK, TYPE >::ACE_Atomic_Op | ( | arg_type | c | ) |
Initialize value_
to c.
ACE_Atomic_Op< ACE_LOCK, TYPE >::ACE_Atomic_Op | ( | ACE_Atomic_Op< ACE_LOCK, TYPE > const & | c | ) | [inline] |
Manage copying...
void ACE_Atomic_Op< ACE_LOCK, TYPE >::dump | ( | void | ) | const [inline] |
Dump the state of an object.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::exchange | ( | TYPE | newval | ) | [inline] |
Exchange value with newval.
bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator!= | ( | arg_type | rhs | ) | const |
Atomically compare value_
with rhs.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator++ | ( | void | ) | [inline] |
Atomically pre-increment value_
.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator++ | ( | int | ) | [inline] |
Atomically post-increment value_
.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator+= | ( | arg_type | rhs | ) |
Atomically increment value_
by rhs.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator-- | ( | void | ) | [inline] |
Atomically pre-decrement value_
.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator-- | ( | int | ) | [inline] |
Atomically post-decrement value_
.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::operator-= | ( | arg_type | rhs | ) |
Atomically decrement value_
by rhs.
bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator< | ( | arg_type | rhs | ) | const |
Atomically check if value_
less than rhs.
bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator<= | ( | arg_type | rhs | ) | const |
Atomically check if value_
less than or equal to rhs.
ACE_Atomic_Op<ACE_LOCK, TYPE>& ACE_Atomic_Op< ACE_LOCK, TYPE >::operator= | ( | arg_type | rhs | ) |
Atomically assign rhs to value_
.
ACE_Atomic_Op< ACE_LOCK, TYPE > & ACE_Atomic_Op< ACE_LOCK, TYPE >::operator= | ( | ACE_Atomic_Op< ACE_LOCK, TYPE > const & | rhs | ) | [inline] |
Atomically assign rhs to value_
.
bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator== | ( | arg_type | rhs | ) | const |
Atomically compare value_
with rhs.
bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator> | ( | arg_type | rhs | ) | const |
Atomically check if value_
greater than rhs.
bool ACE_Atomic_Op< ACE_LOCK, TYPE >::operator>= | ( | arg_type | rhs | ) | const |
Atomically check if value_
greater than or equal to rhs.
TYPE ACE_Atomic_Op< ACE_LOCK, TYPE >::value | ( | void | ) | const [inline] |
Explicitly return value_
.
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_Atomic_Op_Ex<ACE_LOCK, TYPE> ACE_Atomic_Op< ACE_LOCK, TYPE >::impl_ [private] |
Underlying atomic op implementation.
ACE_LOCK ACE_Atomic_Op< ACE_LOCK, TYPE >::own_mutex_ [private] |
Type of synchronization mechanism.