[ONOS-6267] Support configurable Executors for primitives
- Support user-provided Executors in primitive builders
- Implement default per-partition per-primitive serial executor using a shared thread pool
- Implement Executor wrappers for all primitive types
Change-Id: I53acfb173a9b49a992a9a388983791d9735ed54a
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DelegatingAsyncConsistentTreeMap.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DelegatingAsyncConsistentTreeMap.java
index f474f7b..972fd72 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DelegatingAsyncConsistentTreeMap.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DelegatingAsyncConsistentTreeMap.java
@@ -16,14 +16,6 @@
package org.onosproject.store.primitives.impl;
-import org.onosproject.store.primitives.MapUpdate;
-import org.onosproject.store.primitives.TransactionId;
-import org.onosproject.store.service.AsyncConsistentTreeMap;
-import org.onosproject.store.service.MapEventListener;
-import org.onosproject.store.service.TransactionLog;
-import org.onosproject.store.service.Version;
-import org.onosproject.store.service.Versioned;
-
import java.util.Collection;
import java.util.Map;
import java.util.NavigableMap;
@@ -35,6 +27,14 @@
import java.util.function.BiFunction;
import java.util.function.Predicate;
+import org.onosproject.store.primitives.MapUpdate;
+import org.onosproject.store.primitives.TransactionId;
+import org.onosproject.store.service.AsyncConsistentTreeMap;
+import org.onosproject.store.service.MapEventListener;
+import org.onosproject.store.service.TransactionLog;
+import org.onosproject.store.service.Version;
+import org.onosproject.store.service.Versioned;
+
import static com.google.common.base.Preconditions.checkNotNull;
/**
@@ -42,11 +42,12 @@
* of {@link AsyncConsistentTreeMap}.
*/
public class DelegatingAsyncConsistentTreeMap<V>
- implements AsyncConsistentTreeMap<V> {
+ extends DelegatingDistributedPrimitive implements AsyncConsistentTreeMap<V> {
private final AsyncConsistentTreeMap<V> delegateMap;
DelegatingAsyncConsistentTreeMap(AsyncConsistentTreeMap<V> delegateMap) {
+ super(delegateMap);
this.delegateMap = checkNotNull(delegateMap,
"delegate map cannot be null");
}
@@ -137,11 +138,6 @@
}
@Override
- public String name() {
- return delegateMap.name();
- }
-
- @Override
public CompletableFuture<Integer> size() {
return delegateMap.size();
}
@@ -293,5 +289,4 @@
public int hashCode() {
return Objects.hash(delegateMap);
}
-
}