aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/EventuallyConsistentMapBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/store/service/EventuallyConsistentMapBuilder.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/store/service/EventuallyConsistentMapBuilder.java187
1 files changed, 0 insertions, 187 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/EventuallyConsistentMapBuilder.java b/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/EventuallyConsistentMapBuilder.java
deleted file mode 100644
index 9471321c..00000000
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/EventuallyConsistentMapBuilder.java
+++ /dev/null
@@ -1,187 +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.service;
-
-import org.onlab.util.KryoNamespace;
-import org.onosproject.cluster.NodeId;
-import org.onosproject.store.Timestamp;
-
-import java.util.Collection;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.function.BiFunction;
-
-/**
- * Builder for eventually consistent maps.
- *
- * @param <K> type for map keys
- * @param <V> type for map values
- */
-public interface EventuallyConsistentMapBuilder<K, V> {
-
- /**
- * Sets the name of the map.
- * <p>
- * Each map is identified by a string map name. EventuallyConsistentMapImpl
- * objects in different JVMs that use the same map name will form a
- * distributed map across JVMs (provided the cluster service is aware of
- * both nodes).
- * </p>
- * <p>
- * Note: This is a mandatory parameter.
- * </p>
- *
- * @param name name of the map
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withName(String name);
-
- /**
- * Sets a serializer builder that can be used to create a serializer that
- * can serialize both the keys and values put into the map. The serializer
- * builder should be pre-populated with any classes that will be put into
- * the map.
- * <p>
- * Note: This is a mandatory parameter.
- * </p>
- *
- * @param serializerBuilder serializer builder
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withSerializer(
- KryoNamespace.Builder serializerBuilder);
-
- /**
- * Sets the function to use for generating timestamps for map updates.
- * <p>
- * The client must provide an {@code BiFunction<K, V, Timestamp>}
- * which can generate timestamps for a given key. The function is free
- * to generate timestamps however it wishes, however these timestamps will
- * be used to serialize updates to the map so they must be strict enough
- * to ensure updates are properly ordered for the use case (i.e. in some
- * cases wallclock time will suffice, whereas in other cases logical time
- * will be necessary).
- * </p>
- * <p>
- * Note: This is a mandatory parameter.
- * </p>
- *
- * @param timestampProvider provides a new timestamp
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withTimestampProvider(
- BiFunction<K, V, Timestamp> timestampProvider);
-
- /**
- * Sets the executor to use for processing events coming in from peers.
- *
- * @param executor event executor
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withEventExecutor(
- ExecutorService executor);
-
- /**
- * Sets the executor to use for sending events to peers.
- *
- * @param executor event executor
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withCommunicationExecutor(
- ExecutorService executor);
-
- /**
- * Sets the executor to use for background anti-entropy tasks.
- *
- * @param executor event executor
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withBackgroundExecutor(
- ScheduledExecutorService executor);
-
- /**
- * Sets a function that can determine which peers to replicate updates to.
- * <p>
- * The default function replicates to all nodes.
- * </p>
- *
- * @param peerUpdateFunction function that takes a K, V input and returns
- * a collection of NodeIds to replicate the event
- * to
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withPeerUpdateFunction(
- BiFunction<K, V, Collection<NodeId>> peerUpdateFunction);
-
- /**
- * Prevents this map from writing tombstones of items that have been
- * removed. This may result in zombie items reappearing after they have
- * been removed.
- * <p>
- * The default behavior is tombstones are enabled.
- * </p>
- *
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withTombstonesDisabled();
-
- /**
- * Configures how often to run the anti-entropy background task.
- * <p>
- * The default anti-entropy period is 5 seconds.
- * </p>
- *
- * @param period anti-entropy period
- * @param unit time unit for the period
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withAntiEntropyPeriod(
- long period, TimeUnit unit);
-
- /**
- * Configure anti-entropy to converge faster at the cost of doing more work
- * for each anti-entropy cycle. Suited to maps with low update rate where
- * convergence time is more important than throughput.
- * <p>
- * The default behavior is to do less anti-entropy work at the cost of
- * slower convergence.
- * </p>
- *
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withFasterConvergence();
-
- /**
- * Configure the map to persist data to disk.
- * <p>
- * The default behavior is no persistence
- * </p>
- *
- * @return this EventuallyConsistentMapBuilder
- */
- EventuallyConsistentMapBuilder<K, V> withPersistence();
-
- /**
- * Builds an eventually consistent map based on the configuration options
- * supplied to this builder.
- *
- * @return new eventually consistent map
- * @throws java.lang.RuntimeException if a mandatory parameter is missing
- */
- EventuallyConsistentMap<K, V> build();
-}