Oracle Coherence for C++ API
Release 3.7.1.0

E22845-01

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:
Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.