aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/AsyncAtomicCounter.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/store/service/AsyncAtomicCounter.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/store/service/AsyncAtomicCounter.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/AsyncAtomicCounter.java b/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/AsyncAtomicCounter.java
index a879cc59..c0df7134 100644
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/AsyncAtomicCounter.java
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/AsyncAtomicCounter.java
@@ -58,4 +58,21 @@ public interface AsyncAtomicCounter {
* @return current value
*/
CompletableFuture<Long> get();
+
+
+ /**
+ * Atomically sets the given value to the current value.
+ *
+ * @return future void
+ */
+ CompletableFuture<Void> set(long value);
+
+ /**
+ * Atomically sets the given counter to the updated value if the current value is the expected value, otherwise
+ * no change occurs.
+ * @param expectedValue the expected current value of the counter
+ * @param updateValue the new value to be set
+ * @return true if the update occurred and the expected value was equal to the current value, false otherwise
+ */
+ CompletableFuture<Boolean> compareAndSet(long expectedValue, long updateValue);
}