Adding atomic countetr compare and set method

Change-Id: I5cf459e9e09ab1a84ced8160ef61d6a52ea4bea4
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 5e14e55..d851eaa 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
@@ -40,6 +40,7 @@
     private static final String ADD_AND_GET = "addAndGet";
     private static final String GET = "get";
     private static final String SET = "set";
+    private static final String COMPARE_AND_SET = "compareAndSet";
 
     public DefaultAsyncAtomicCounter(String name,
                                      Database database,
@@ -90,4 +91,11 @@
         return database.counterSet(name, value)
                 .whenComplete((r, e) -> timer.stop(e));
     }
+
+    @Override
+    public CompletableFuture<Boolean> compareAndSet(long expectedValue, long updateValue) {
+        final MeteringAgent.Context timer = monitor.startTimer(COMPARE_AND_SET);
+        return database.counterCompareAndSet(name, expectedValue, updateValue)
+                .whenComplete((r, e) -> timer.stop(e));
+    }
 }