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=057dbfa56abd0f08f10477eba6c93df42afd46de;hp=571899ba14343f7b8f189571e18f708b397fc86b;hb=c796596b5c46b5203c30b143e6282662e66c5642;hpb=d71b6614d6cdb5a98f086edeb56f5c52f365c61c 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 571899ba14..057dbfa56a 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,20 +7,25 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; import javax.annotation.Nonnull; -import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; abstract class AbstractTransactionContext implements TransactionContext { private static final Logger LOG = LoggerFactory.getLogger(AbstractTransactionContext.class); - private final OperationLimiter limiter; + private final TransactionIdentifier transactionIdentifier; private long modificationCount = 0; - private boolean handoffComplete; + private boolean handOffComplete; + private final short transactionVersion; - protected AbstractTransactionContext(final OperationLimiter limiter) { - this.limiter = Preconditions.checkNotNull(limiter); + protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier) { + this(transactionIdentifier, DataStoreVersions.CURRENT_VERSION); + } + + protected AbstractTransactionContext(TransactionIdentifier transactionIdentifier, short transactionVersion) { + this.transactionIdentifier = transactionIdentifier; + this.transactionVersion = transactionVersion; } /** @@ -29,56 +34,33 @@ abstract class AbstractTransactionContext implements TransactionContext { * @return Transaction identifier. */ @Nonnull protected final TransactionIdentifier getIdentifier() { - return limiter.getIdentifier(); - } - - /** - * Return the operation limiter associated with this context. - * @return Operation limiter. - */ - @Nonnull protected final OperationLimiter getLimiter() { - return limiter; + return transactionIdentifier; } - /** - * Indicate whether all operations have been handed off by the {@link TransactionContextWrapper}. - * - * @return True if this context is responsible for throttling. - */ - protected final boolean isOperationHandoffComplete() { - return handoffComplete; + protected final void incrementModificationCount() { + modificationCount++; } - /** - * Acquire operation from the limiter if the handoff has completed. If - * the handoff is still ongoing, this method does nothing. - */ - protected final void acquireOperation() { - if (handoffComplete) { - limiter.acquire(); - } + protected final void logModificationCount() { + LOG.debug("Total modifications on Tx {} = [ {} ]", getIdentifier(), modificationCount); } - /** - * Acquire operation from the limiter if the handoff has NOT completed. If - * the handoff has completed, this method does nothing. - */ - protected final void releaseOperation() { - if (!handoffComplete) { - limiter.release(); - } + @Override + public final void operationHandOffComplete() { + handOffComplete = true; } - protected final void incrementModificationCount() { - modificationCount++; + protected boolean isOperationHandOffComplete(){ + return handOffComplete; } - protected final void logModificationCount() { - LOG.debug("Total modifications on Tx {} = [ {} ]", getIdentifier(), modificationCount); + @Override + public boolean usesOperationLimiting() { + return false; } @Override - public final void operationHandoffComplete() { - handoffComplete = true; + public short getTransactionVersion() { + return transactionVersion; } }