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;
final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohort {
- private final List<AbstractProxyTransaction> proxies;
+ private final Collection<AbstractProxyTransaction> proxies;
- ClientTransactionCommitCohort(final Collection<AbstractProxyTransaction> proxies) {
+ ClientTransactionCommitCohort(final AbstractClientHistory parent, final TransactionIdentifier txId,
+ final Collection<AbstractProxyTransaction> proxies) {
+ super(parent, txId);
this.proxies = ImmutableList.copyOf(proxies);
}
return ret;
}
+ private ListenableFuture<Void> addComplete(final ListenableFuture<Void> future) {
+ future.addListener(this::complete, MoreExecutors.directExecutor());
+ return future;
+ }
+
@Override
public ListenableFuture<Void> preCommit() {
final VotingFuture<Void> ret = new VotingFuture<>(null, proxies.size());
proxy.doCommit(ret);
}
- return ret;
+ return addComplete(ret);
}
@Override
proxy.abort(ret);
}
- return ret;
+ return addComplete(ret);
}
}