import com.google.common.base.MoreObjects;
import com.google.common.base.MoreObjects.ToStringHelper;
import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
-import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataTransaction;
import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction;
-import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.mdsal.common.api.CommitInfo;
/**
* Transaction context. Tracks the relationship with the backend transaction.
* We never leak this class to the user and have it implement the {@link FutureCallback}
* interface so we have a simple way of propagating the result.
*/
-final class PingPongTransaction implements FutureCallback<Void> {
- private final CheckedFuture<Void, TransactionCommitFailedException> submitFuture;
- private final ListenableFuture<RpcResult<TransactionStatus>> commitFuture;
+@Deprecated
+final class PingPongTransaction implements FutureCallback<CommitInfo> {
private final DOMDataReadWriteTransaction delegate;
- private final SettableFuture<Void> future;
+ private final SettableFuture<CommitInfo> future;
private DOMDataReadWriteTransaction frontendTransaction;
PingPongTransaction(final DOMDataReadWriteTransaction delegate) {
this.delegate = Preconditions.checkNotNull(delegate);
future = SettableFuture.create();
- submitFuture = new PingPongFuture(future);
- commitFuture = AbstractDataTransaction.convertToLegacyCommitFuture(submitFuture);
}
DOMDataReadWriteTransaction getTransaction() {
return frontendTransaction;
}
- CheckedFuture<Void, TransactionCommitFailedException> getSubmitFuture() {
- return submitFuture;
- }
-
- ListenableFuture<RpcResult<TransactionStatus>> getCommitFuture() {
- return commitFuture;
+ ListenableFuture<CommitInfo> getCommitFuture() {
+ return future;
}
@Override
- public void onSuccess(final Void result) {
+ public void onSuccess(final CommitInfo result) {
future.set(result);
}
@Override
- public void onFailure(final Throwable t) {
- future.setException(t);
+ public void onFailure(final Throwable throwable) {
+ future.setException(throwable);
}
void recordFrontendTransaction(final DOMDataReadWriteTransaction tx) {
protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelper) {
return toStringHelper.add("delegate", delegate);
}
-}
\ No newline at end of file
+}