Bump versions 9.0.4-SNAPSHOT
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / databroker / actors / dds / ClientTransactionCommitCohort.java
index 2521c38f91f497ddf00d217e35278d32638c714a..7887577a939bc3abf2c5d84d24e1dfe320f75299 100644 (file)
@@ -9,16 +9,18 @@ package org.opendaylight.controller.cluster.databroker.actors.dds;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import java.util.Collection;
-import java.util.List;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
+import org.opendaylight.mdsal.common.api.CommitInfo;
+import org.opendaylight.yangtools.yang.common.Empty;
 
 final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohort {
-    private final List<AbstractProxyTransaction> proxies;
+    private final Collection<AbstractProxyTransaction> proxies;
 
-    /**
-     * @param clientTransaction
-     */
-    ClientTransactionCommitCohort(final Collection<AbstractProxyTransaction> proxies) {
+    ClientTransactionCommitCohort(final AbstractClientHistory parent, final TransactionIdentifier txId,
+            final Collection<AbstractProxyTransaction> proxies) {
+        super(parent, txId);
         this.proxies = ImmutableList.copyOf(proxies);
     }
 
@@ -35,9 +37,14 @@ final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohor
         return ret;
     }
 
+    private <T> ListenableFuture<T> addComplete(final ListenableFuture<T> future) {
+        future.addListener(this::complete, MoreExecutors.directExecutor());
+        return future;
+    }
+
     @Override
-    public ListenableFuture<Void> preCommit() {
-        final VotingFuture<Void> ret = new VotingFuture<>(null, proxies.size());
+    public ListenableFuture<Empty> preCommit() {
+        final var ret = new VotingFuture<>(Empty.value(), proxies.size());
         for (AbstractProxyTransaction proxy : proxies) {
             proxy.preCommit(ret);
         }
@@ -46,22 +53,22 @@ final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohor
     }
 
     @Override
-    public ListenableFuture<Void> commit() {
-        final VotingFuture<Void> ret = new VotingFuture<>(null, proxies.size());
+    public ListenableFuture<CommitInfo> commit() {
+        final var ret = new VotingFuture<>(CommitInfo.empty(), proxies.size());
         for (AbstractProxyTransaction proxy : proxies) {
             proxy.doCommit(ret);
         }
 
-        return ret;
+        return addComplete(ret);
     }
 
     @Override
-    public ListenableFuture<Void> abort() {
-        final VotingFuture<Void> ret = new VotingFuture<>(null, proxies.size());
+    public ListenableFuture<Empty> abort() {
+        final var ret = new VotingFuture<>(Empty.value(), proxies.size());
         for (AbstractProxyTransaction proxy : proxies) {
             proxy.abort(ret);
         }
 
-        return ret;
+        return addComplete(ret);
     }
-}
\ No newline at end of file
+}