package org.threadly.concurrent.future;
/**
* Callback for accepting the results of a future once the future has completed.
*
* @since 1.2.0
* @param <T> The result object type returned by this future
*/
public interface FutureCallback<T> {
/**
* Called once a result was produced successfully.
*
* @param result Result that was provided from the future.
*/
public void handleResult(T result);
/**
* Called once a future has completed, but completed with either a failure or a cancellation.
* If the original task threw an exception (and thus the future threw an ExecutionException),
* that original cause is provided here.
* <p>
* If the future was canceled then a CancellationException will be provided.
*
* @param t Throwable representing the future failure.
*/
public void handleFailure(Throwable t);
}