diff options
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.java | 17 |
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); } |