X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FStandaloneFrontendHistory.java;h=4ac3f9c1ed324d8c629c1f774866cdd618da8c80;hb=178ebab612c3ddd338e759ca7e929c25c623b0b3;hp=1f2eb72560aef600a2deb9520600f8f845600fd3;hpb=5fd8e6506248cc34da72281a1662612f6c2b2f9a;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java index 1f2eb72560..4ac3f9c1ed 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java @@ -7,10 +7,19 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.RangeSet; +import com.google.common.collect.TreeRangeSet; +import com.google.common.primitives.UnsignedLong; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.SortedSet; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; -import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; @@ -24,10 +33,25 @@ final class StandaloneFrontendHistory extends AbstractFrontendHistory { private final LocalHistoryIdentifier identifier; private final ShardDataTree tree; - StandaloneFrontendHistory(final String persistenceId, final ClientIdentifier clientId, final ShardDataTree tree) { - super(persistenceId); + private StandaloneFrontendHistory(final String persistenceId, final ClientIdentifier clientId, + final ShardDataTree tree, final Map closedTransactions, + final RangeSet purgedTransactions) { + super(persistenceId, tree, closedTransactions, purgedTransactions); this.identifier = new LocalHistoryIdentifier(clientId, 0); - this.tree = Preconditions.checkNotNull(tree); + this.tree = requireNonNull(tree); + } + + static @NonNull StandaloneFrontendHistory create(final String persistenceId, final ClientIdentifier clientId, + final ShardDataTree tree) { + return new StandaloneFrontendHistory(persistenceId, clientId, tree, ImmutableMap.of(), + TreeRangeSet.create()); + } + + static @NonNull StandaloneFrontendHistory recreate(final String persistenceId, final ClientIdentifier clientId, + final ShardDataTree tree, final Map closedTransactions, + final RangeSet purgedTransactions) { + return new StandaloneFrontendHistory(persistenceId, clientId, tree, new HashMap<>(closedTransactions), + purgedTransactions); } @Override @@ -36,18 +60,29 @@ final class StandaloneFrontendHistory extends AbstractFrontendHistory { } @Override - FrontendTransaction createOpenTransaction(final TransactionIdentifier id) throws RequestException { - return FrontendTransaction.createOpen(this, tree.newReadWriteTransaction(id)); + FrontendTransaction createOpenSnapshot(final TransactionIdentifier id) { + return FrontendReadOnlyTransaction.create(this, tree.newReadOnlyTransaction(id)); + } + + @Override + FrontendTransaction createOpenTransaction(final TransactionIdentifier id) { + return FrontendReadWriteTransaction.createOpen(this, tree.newReadWriteTransaction(id)); + } + + @Override + FrontendTransaction createReadyTransaction(final TransactionIdentifier id, final DataTreeModification mod) { + return FrontendReadWriteTransaction.createReady(this, id, mod); } @Override - FrontendTransaction createReadyTransaction(final TransactionIdentifier id, final DataTreeModification mod) - throws RequestException { - return FrontendTransaction.createReady(this, id, mod); + ShardDataTreeCohort createFailedCohort(final TransactionIdentifier id, final DataTreeModification mod, + final Exception failure) { + return tree.createFailedCohort(id, mod, failure); } @Override - ShardDataTreeCohort createReadyCohort(final TransactionIdentifier id, final DataTreeModification mod) { - return tree.createReadyCohort(id, mod); + ShardDataTreeCohort createReadyCohort(final TransactionIdentifier id, final DataTreeModification mod, + final Optional> participatingShardNames) { + return tree.createReadyCohort(id, mod, participatingShardNames); } }