package org.async.rmi.client;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
/**
* Created by Barak Bar Orion
* 12/18/14.
*/
public class ClientCompletableFuture<T> extends CompletableFuture<T> {
private final Consumer<Boolean> sendCancelRequest;
public ClientCompletableFuture(Consumer<Boolean> sendCancelRequest) {
super();
this.sendCancelRequest = sendCancelRequest;
}
@Override
public synchronized boolean cancel(boolean mayInterruptIfRunning) {
boolean res = super.cancel(mayInterruptIfRunning);
if (res) {
sendCancelRequest.accept(mayInterruptIfRunning);
}
return res;
}
}