[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/DelegatingAsyncConsistentMultimap.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DelegatingAsyncConsistentMultimap.java
index a425c32..5bd37c5 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DelegatingAsyncConsistentMultimap.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DelegatingAsyncConsistentMultimap.java
@@ -16,19 +16,15 @@
package org.onosproject.store.primitives.impl;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Preconditions;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CompletableFuture;
+
import com.google.common.collect.Multiset;
import org.onosproject.store.service.AsyncConsistentMultimap;
import org.onosproject.store.service.Versioned;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Consumer;
-
/**
* {@code AsyncConsistentMultimap} that merely delegates control to
* another AsyncConsistentMultimap.
@@ -37,18 +33,14 @@
* @param <V> value type
*/
public class DelegatingAsyncConsistentMultimap<K, V>
- implements AsyncConsistentMultimap<K, V> {
+ extends DelegatingDistributedPrimitive implements AsyncConsistentMultimap<K, V> {
private final AsyncConsistentMultimap<K, V> delegateMap;
public DelegatingAsyncConsistentMultimap(
AsyncConsistentMultimap<K, V> delegateMap) {
- this.delegateMap = Preconditions.checkNotNull(delegateMap);
- }
-
- @Override
- public String name() {
- return delegateMap.name();
+ super(delegateMap);
+ this.delegateMap = delegateMap;
}
@Override
@@ -144,41 +136,4 @@
public CompletableFuture<Map<K, Collection<V>>> asMap() {
return delegateMap.asMap();
}
-
- @Override
- public void addStatusChangeListener(Consumer<Status> listener) {
- delegateMap.addStatusChangeListener(listener);
- }
-
- @Override
- public void removeStatusChangeListener(Consumer<Status> listener) {
- delegateMap.removeStatusChangeListener(listener);
- }
-
- @Override
- public Collection<Consumer<Status>> statusChangeListeners() {
- return delegateMap.statusChangeListeners();
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(getClass())
- .add("delegateMap", delegateMap)
- .toString();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(delegateMap);
- }
-
- @Override
- public boolean equals(Object other) {
- if (other instanceof DelegatingAsyncConsistentMultimap) {
- DelegatingAsyncConsistentMultimap<K, V> that =
- (DelegatingAsyncConsistentMultimap) other;
- return this.delegateMap.equals(that.delegateMap);
- }
- return false;
- }
}