NAME

ACE_Atomic_Op - Transparently parameterizes synchronization into basic arithmetic operations.

SYNOPSIS


#include <ace/Synch_T.h>


template<class LOCK, class TYPE>
class ACE_Atomic_Op
{
  public:
    ACE_Atomic_Op (void);
    ACE_Atomic_Op (TYPE c);
    TYPE operator++ (void);
    TYPE operator++ (int);
    TYPE operator+= (const TYPE i);
    TYPE operator-- (void);
    TYPE operator-- (int);
    TYPE operator-= (const TYPE i);
    TYPE operator== (const TYPE i) const;
    TYPE operator>= (const TYPE i) const;
    TYPE operator> (const TYPE rhs) const;
    TYPE operator<= (const TYPE rhs) const;
    TYPE operator< (const TYPE rhs) const;
    void operator= (const TYPE i);
    void operator= (const ACE_Atomic_Op<LOCK, TYPE> &rhs);
    operator TYPE () const;
    void dump (void) const;
    ACE_Atomic_Op (const ACE_Atomic_Op<LOCK, TYPE> &);
  private:
    LOCK lock_;
    TYPE value_;
};

DESCRIPTION

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.

PUBLIC MEMBERS

ACE_Atomic_Op (void);
ACE_Atomic_Op (TYPE c);
TYPE operator++ (void);
TYPE operator++ (int);
TYPE operator+= (const TYPE i);
TYPE operator-- (void);
TYPE operator-- (int);
TYPE operator-= (const TYPE i);
TYPE operator== (const TYPE i) const;
TYPE operator>= (const TYPE i) const;
TYPE operator> (const TYPE rhs) const;
TYPE operator<= (const TYPE rhs) const;
TYPE operator< (const TYPE rhs) const;
void operator= (const TYPE i);
void operator= (const ACE_Atomic_Op<LOCK, TYPE> &rhs);
operator TYPE () const;
void dump (void) const;
ACE_Atomic_Op (const ACE_Atomic_Op<LOCK, TYPE> &);

PRIVATE MEMBERS

LOCK lock_;
TYPE value_;

AUTHOR

Doug Schmidt

LIBRARY

ace