package com.bumptech.glide.request;
import com.bumptech.glide.request.target.Target;
import java.util.concurrent.Future;
/**
* An interface for an object that is both a {@link com.bumptech.glide.request.target.Target} and a
* {@link java.util.concurrent.Future}. For example:
* <pre>
* {@code
* FutureTarget<Bitmap> futureTarget = Glide.with(fragment)
* .load("http://goo.gl/1asf12")
* .asBitmap()
* .into(250, 250);
* Bitmap myBitmap = futureTarget.get();
* ... // do things with bitmap and then release when finished:
* futureTarget.cancel(false);
* }
* </pre>
*
* <p> Note - {@link #get()} and {@link #get(long, java.util.concurrent.TimeUnit)} must be called
* off of the main thread or they will block forever. </p>
*
* @param <R> The type of resource this FutureTarget will retrieve.
*/
public interface FutureTarget<R> extends Future<R>, Target<R> {
}