X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FAbstractTransactionContext.java;h=7b25abbe836fd0cd655ad3c24d6d7b3f881bac45;hp=933e87ace2588388a624783960788a7a3c01bbd5;hb=8ec73bf853a9b6708b455c0321a585992e02b125;hpb=37f0504d391efd8b7d61403759fcc22a6dd3a093 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 933e87ace2..7b25abbe83 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,22 +7,61 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.collect.Lists; -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 short transactionVersion; - protected final TransactionIdentifier identifier; - protected final List> recordedOperationFutures = Lists.newArrayList(); + protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier) { + this(transactionIdentifier, DataStoreVersions.CURRENT_VERSION); + } + + protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier, + short transactionVersion) { + this.transactionIdentifier = transactionIdentifier; + this.transactionVersion = transactionVersion; + } + + /** + * Get the transaction identifier associated with this context. + * + * @return Transaction identifier. + */ + @Nonnull protected final TransactionIdentifier getIdentifier() { + return transactionIdentifier; + } + + protected final void incrementModificationCount() { + modificationCount++; + } - AbstractTransactionContext(TransactionIdentifier identifier) { - this.identifier = identifier; + protected final void logModificationCount() { + LOG.debug("Total modifications on Tx {} = [ {} ]", getIdentifier(), modificationCount); + } + + @Override + public final void operationHandOffComplete() { + handOffComplete = true; + } + + protected boolean isOperationHandOffComplete(){ + return handOffComplete; + } + + @Override + public boolean usesOperationLimiting() { + return false; } @Override - public List> getRecordedOperationFutures() { - return recordedOperationFutures; + public short getTransactionVersion() { + return transactionVersion; } -} \ No newline at end of file +}