Oracle Coherence for C++ API
Release 3.6.1.0
E18813-01

- Main Page
- Namespaces
- Classes
- Files

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# AtomicCounter Class Reference

`#include <coherence/util/AtomicCounter.hpp>`

Inherits Object.

List of all members.

## Detailed Description

AtomicCounter allows for atomic updates to a "int64_t" value where possible without requiring synchronization.

Author:
  nsa 12.28.2007

## Public Types
typedef spec::Handle | Handle
| AtomicCounter Handle definition.
typedef spec::View | View
| AtomicCounter View definition.
typedef spec::Holder | Holder
| AtomicCounter Holder definition.
## Public Member Functions
virtual int64_t | increment (int64_t c=1)
| Incremenet the value by c, and return the new value.
virtual int64_t | postIncrement (int64_t c=1)
| Incremenet the value by c, and return the original value.
virtual int64_t | decrement (int64_t c=1)
| Decrement the value by c, and return the new value.
virtual int64_t | postDecrement (int64_t c=1)
| Decrement the value by c, and return the original value.
virtual int64_t | getCount () const
| Return the current value of the counter.
virtual int64_t | update (int64_t cAssume, int64_t cNew)
| Update the current value, only if it is equal to the assumed value.
virtual int64_t | setCount (int64_t cNew)
| Update the current value, and return the previous value.
virtual void | toStream (std::ostream &out) const
| Output a human-readable description of this Object to the given stream. coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toStream method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents.
     Object::View vKey   = ...
     Object::View vValue = ...
     std::cout << vKey << " = " << vValue << std::endl;

     String::Handle hs = COH_TO_STRING(vKey << " = " << vValue);
  Parameters:
  | out | the stream used to output the description
## Protected Member Functions
| AtomicCounter (int64_t cValue=0)
| Create an AtomicCounter initialized with a specified value.
| AtomicCounter (const AtomicCounter &that)
| Copy constructor.
## Protected Attributes
NativeAtomic64 | m_atomic
| The underlying native implementation.

## Constructor & Destructor Documentation

AtomicCounter | ( | int64_t | cValue = `0` | ) | `[protected]`

Create an AtomicCounter initialized with a specified value.

Parameters:

  | cValue | the initial value of the Atomic64

## Member Function Documentation

virtual int64_t increment | ( | int64_t | c = `1` | ) | `[virtual]`

Incremenet the value by c, and return the new value.

Parameters:

  | c | the amount to increment the counter by

Returns:
  the new value

virtual int64_t postIncrement | ( | int64_t | c = `1` | ) | `[virtual]`

Incremenet the value by c, and return the original value.

Parameters:

  | c | the amount to increment the counter by

Returns:
  the original value

virtual int64_t decrement | ( | int64_t | c = `1` | ) | `[virtual]`

Decrement the value by c, and return the new value.

Parameters:

  | c | the amount to decrement the counter by

Returns:
  the new value

virtual int64_t postDecrement | ( | int64_t | c = `1` | ) | `[virtual]`

Decrement the value by c, and return the original value.

Parameters:

  | c | the amount to decrement the counter by

Returns:
  the original value

virtual int64_t getCount | ( |  | ) | const`[virtual]`

Return the current value of the counter.

Returns:
  the current value

virtual int64_t update | ( | int64_t | cAssume,
|  | int64_t | cNew |
| ) |  |  | `[virtual]`

Update the current value, only if it is equal to the assumed value.

Parameters:

  | cAssume | the assumed old value
  | cNew | the new value

Returns:
  the prior actual value, if the returned value does is not equal to the supplied assumed value then update did not take place

virtual int64_t setCount | ( | int64_t | cNew | ) | `[virtual]`

Update the current value, and return the previous value.

Parameters:

  | cNew | the new value

Returns:
  the previous value just before the update went through

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

- coherence/util/AtomicCounter.hpp

Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.