Implementation of IdBlockStore on top of AtomicCounter
Change-Id: I019322a812262edeca20a55813183a63b4525b75
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAsyncAtomicCounter.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAsyncAtomicCounter.java
index 3cad25f..a69c0cc 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAsyncAtomicCounter.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultAsyncAtomicCounter.java
@@ -16,7 +16,9 @@
package org.onosproject.store.consistent.impl;
import java.util.concurrent.CompletableFuture;
+
import org.onosproject.store.service.AsyncAtomicCounter;
+
import static com.google.common.base.Preconditions.*;
/**
@@ -37,11 +39,26 @@
@Override
public CompletableFuture<Long> incrementAndGet() {
- return database.nextValue(name);
+ return addAndGet(1L);
}
@Override
public CompletableFuture<Long> get() {
- return database.currentValue(name);
+ return database.counterGet(name);
+ }
+
+ @Override
+ public CompletableFuture<Long> getAndIncrement() {
+ return getAndAdd(1L);
+ }
+
+ @Override
+ public CompletableFuture<Long> getAndAdd(long delta) {
+ return database.counterGetAndAdd(name, delta);
+ }
+
+ @Override
+ public CompletableFuture<Long> addAndGet(long delta) {
+ return database.counterAddAndGet(name, delta);
}
}