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%2FAbstractTransactionContext.java;h=97a0205ff2b7bc1a94bfe88c23e26a642b2a0866;hb=30507b196fa240a4176ba12102ac0469280feff9;hp=d94e1c691e704051a81f74c2ba3ec135e1da002e;hpb=1d643894797401ebec8e2242c234779675ca37c3;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java index d94e1c691e..97a0205ff2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContext.java @@ -7,40 +7,49 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.collect.ImmutableList; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import javax.annotation.Nonnull; import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier; -import scala.concurrent.Future; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; abstract class AbstractTransactionContext implements TransactionContext { + private static final Logger LOG = LoggerFactory.getLogger(AbstractTransactionContext.class); + private final TransactionIdentifier transactionIdentifier; + private long modificationCount = 0; + private boolean handOffComplete; - private final List> recordedOperationFutures = new ArrayList<>(); - private final TransactionIdentifier identifier; + protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier) { + this.transactionIdentifier = transactionIdentifier; + } - protected AbstractTransactionContext(TransactionIdentifier identifier) { - this.identifier = identifier; + /** + * Get the transaction identifier associated with this context. + * + * @return Transaction identifier. + */ + @Nonnull protected final TransactionIdentifier getIdentifier() { + return transactionIdentifier; } - @Override - public final void copyRecordedOperationFutures(Collection> target) { - target.addAll(recordedOperationFutures); + protected final void incrementModificationCount() { + modificationCount++; } - protected final TransactionIdentifier getIdentifier() { - return identifier; + protected final void logModificationCount() { + LOG.debug("Total modifications on Tx {} = [ {} ]", getIdentifier(), modificationCount); } - protected final Collection> copyRecordedOperationFutures() { - return ImmutableList.copyOf(recordedOperationFutures); + @Override + public final void operationHandOffComplete() { + handOffComplete = true; } - protected final int recordedOperationCount() { - return recordedOperationFutures.size(); + protected boolean isOperationHandOffComplete(){ + return handOffComplete; } - protected final void recordOperationFuture(Future future) { - recordedOperationFutures.add(future); + @Override + public boolean usesOperationLimiting() { + return false; } }