diff options
Diffstat (limited to 'framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapBuilderImpl.java')
-rw-r--r-- | framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapBuilderImpl.java | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapBuilderImpl.java b/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapBuilderImpl.java deleted file mode 100644 index eb98c829..00000000 --- a/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/ecmap/EventuallyConsistentMapBuilderImpl.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.store.ecmap; - -import org.onlab.util.KryoNamespace; -import org.onosproject.cluster.ClusterService; -import org.onosproject.cluster.NodeId; -import org.onosproject.persistence.PersistenceService; -import org.onosproject.store.Timestamp; -import org.onosproject.store.cluster.messaging.ClusterCommunicationService; -import org.onosproject.store.service.EventuallyConsistentMap; -import org.onosproject.store.service.EventuallyConsistentMapBuilder; - -import java.util.Collection; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.function.BiFunction; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -/** - * Eventually consistent map builder. - */ -public class EventuallyConsistentMapBuilderImpl<K, V> - implements EventuallyConsistentMapBuilder<K, V> { - private final ClusterService clusterService; - private final ClusterCommunicationService clusterCommunicator; - - private String name; - private KryoNamespace.Builder serializerBuilder; - private ExecutorService eventExecutor; - private ExecutorService communicationExecutor; - private ScheduledExecutorService backgroundExecutor; - private BiFunction<K, V, Timestamp> timestampProvider; - private BiFunction<K, V, Collection<NodeId>> peerUpdateFunction; - private boolean tombstonesDisabled = false; - private long antiEntropyPeriod = 5; - private TimeUnit antiEntropyTimeUnit = TimeUnit.SECONDS; - private boolean convergeFaster = false; - private boolean persistent = false; - private boolean persistentMap = false; - private final PersistenceService persistenceService; - - /** - * Creates a new eventually consistent map builder. - * - * @param clusterService cluster service - * @param clusterCommunicator cluster communication service - */ - public EventuallyConsistentMapBuilderImpl(ClusterService clusterService, - ClusterCommunicationService clusterCommunicator, - PersistenceService persistenceService) { - this.persistenceService = persistenceService; - this.clusterService = checkNotNull(clusterService); - this.clusterCommunicator = checkNotNull(clusterCommunicator); - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withName(String name) { - this.name = checkNotNull(name); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withSerializer( - KryoNamespace.Builder serializerBuilder) { - this.serializerBuilder = checkNotNull(serializerBuilder); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withTimestampProvider( - BiFunction<K, V, Timestamp> timestampProvider) { - this.timestampProvider = checkNotNull(timestampProvider); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withEventExecutor(ExecutorService executor) { - this.eventExecutor = checkNotNull(executor); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withCommunicationExecutor( - ExecutorService executor) { - communicationExecutor = checkNotNull(executor); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withBackgroundExecutor(ScheduledExecutorService executor) { - this.backgroundExecutor = checkNotNull(executor); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withPeerUpdateFunction( - BiFunction<K, V, Collection<NodeId>> peerUpdateFunction) { - this.peerUpdateFunction = checkNotNull(peerUpdateFunction); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withTombstonesDisabled() { - tombstonesDisabled = true; - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withAntiEntropyPeriod(long period, TimeUnit unit) { - checkArgument(period > 0, "anti-entropy period must be greater than 0"); - antiEntropyPeriod = period; - antiEntropyTimeUnit = checkNotNull(unit); - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withFasterConvergence() { - convergeFaster = true; - return this; - } - - @Override - public EventuallyConsistentMapBuilder<K, V> withPersistence() { - checkNotNull(this.persistenceService); - persistent = true; - return this; - } - - @Override - public EventuallyConsistentMap<K, V> build() { - checkNotNull(name, "name is a mandatory parameter"); - checkNotNull(serializerBuilder, "serializerBuilder is a mandatory parameter"); - checkNotNull(timestampProvider, "timestampProvider is a mandatory parameter"); - - return new EventuallyConsistentMapImpl<>(name, - clusterService, - clusterCommunicator, - serializerBuilder, - timestampProvider, - peerUpdateFunction, - eventExecutor, - communicationExecutor, - backgroundExecutor, - tombstonesDisabled, - antiEntropyPeriod, - antiEntropyTimeUnit, - convergeFaster, - persistent, - persistenceService); - } -} |