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%2FCohortEntry.java;h=06d3ec9d67381e3709617bc4535f40ac37378fc9;hb=18ecb07132281d3152a49baf50e8c020403588f9;hp=d13ecd2498c509a226eef917762da1afbd5f5396;hpb=348a37f613ef444b10a0e65b400390396552fc48;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java index d13ecd2498..06d3ec9d67 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java @@ -14,9 +14,9 @@ import com.google.common.base.Stopwatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.CohortDecorator; import org.opendaylight.controller.cluster.datastore.modification.Modification; -import org.opendaylight.yangtools.util.StringIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -35,7 +35,7 @@ final class CohortEntry { private final Stopwatch lastAccessTimer = Stopwatch.createStarted(); private final ReadWriteShardDataTreeTransaction transaction; - private final StringIdentifier transactionID; + private final TransactionIdentifier transactionID; private final CompositeDataTreeCohort userCohorts; private final short clientVersion; @@ -47,29 +47,39 @@ final class CohortEntry { private ActorRef replySender; private Shard shard; - CohortEntry(String transactionID, ReadWriteShardDataTreeTransaction transaction, + private CohortEntry(TransactionIdentifier transactionID, ReadWriteShardDataTreeTransaction transaction, DataTreeCohortActorRegistry cohortRegistry, SchemaContext schema, short clientVersion) { this.transaction = Preconditions.checkNotNull(transaction); - this.transactionID = new StringIdentifier(transactionID); + this.transactionID = Preconditions.checkNotNull(transactionID); this.clientVersion = clientVersion; this.userCohorts = new CompositeDataTreeCohort(cohortRegistry, transactionID, schema, COMMIT_STEP_TIMEOUT); } - CohortEntry(String transactionID, ShardDataTreeCohort cohort, DataTreeCohortActorRegistry cohortRegistry, + private CohortEntry(TransactionIdentifier transactionID, ShardDataTreeCohort cohort, DataTreeCohortActorRegistry cohortRegistry, SchemaContext schema, short clientVersion) { - this.transactionID = new StringIdentifier(transactionID); + this.transactionID = Preconditions.checkNotNull(transactionID); this.cohort = cohort; this.transaction = null; this.clientVersion = clientVersion; this.userCohorts = new CompositeDataTreeCohort(cohortRegistry, transactionID, schema, COMMIT_STEP_TIMEOUT); } + static CohortEntry createOpen(TransactionIdentifier transactionID, ReadWriteShardDataTreeTransaction transaction, + DataTreeCohortActorRegistry cohortRegistry, SchemaContext schema, short clientVersion) { + return new CohortEntry(transactionID, transaction, cohortRegistry, schema, clientVersion); + } + + static CohortEntry createReady(TransactionIdentifier transactionID, ShardDataTreeCohort cohort, + DataTreeCohortActorRegistry cohortRegistry, SchemaContext schema, short clientVersion) { + return new CohortEntry(transactionID, cohort, cohortRegistry, schema, clientVersion); + } + void updateLastAccessTime() { lastAccessTimer.reset(); lastAccessTimer.start(); } - StringIdentifier getTransactionID() { + TransactionIdentifier getTransactionID() { return transactionID; }