package org.infinispan.counter.util; import org.infinispan.counter.SyncStrongCounter; import org.infinispan.counter.api.CounterListener; import org.infinispan.counter.api.Handle; import org.infinispan.counter.api.StrongCounter; /** * @author Pedro Ruivo * @since 9.0 */ public class StrongTestCounter implements TestCounter { private final SyncStrongCounter syncCounter; private final StrongCounter counter; public StrongTestCounter(StrongCounter counter) { this.counter = counter; this.syncCounter = new SyncStrongCounter(counter); } @Override public <T extends CounterListener> Handle<T> addListener(T listener) { return counter.addListener(listener); } @Override public void increment() { syncCounter.incrementAndGet(); } @Override public void add(long delta) { syncCounter.addAndGet(delta); } public long addAndGet(long delta) { return syncCounter.addAndGet(delta); } @Override public void decrement() { syncCounter.decrementAndGet(); } @Override public long getValue() { return syncCounter.getValue(); } @Override public void reset() { syncCounter.reset(); } public boolean compareAndSet(long expect, long value) { return syncCounter.compareAndSet(expect, value); } }