19fc12334a7d14347cd6951d0653264b2597bd3a0Sam Juddpackage com.bumptech.glide.request;
20ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd
30ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd/**
45f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * A request that loads a resource for an {@link com.bumptech.glide.request.target.Target}.
50ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd */
60ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Juddpublic interface Request {
70ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd
80ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd    /**
90ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd     * Starts an asynchronous load.
100ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd     */
115ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    void begin();
120ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd
130ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd    /**
1436d52a4b762f98482163e38c68a324ae20392e7dSam Judd     * Identical to {@link #clear()} except that the request may later be restarted.
1536d52a4b762f98482163e38c68a324ae20392e7dSam Judd     */
165ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    void pause();
1736d52a4b762f98482163e38c68a324ae20392e7dSam Judd
1836d52a4b762f98482163e38c68a324ae20392e7dSam Judd    /**
1936d52a4b762f98482163e38c68a324ae20392e7dSam Judd     * Prevents any bitmaps being loaded from previous requests, releases any resources held by this request,
2036d52a4b762f98482163e38c68a324ae20392e7dSam Judd     * displays the current placeholder if one was provided, and marks the request as having been cancelled.
210ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd     */
225ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    void clear();
230ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd
240ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd    /**
2536d52a4b762f98482163e38c68a324ae20392e7dSam Judd     * Returns true if this request is paused and may be restarted.
2636d52a4b762f98482163e38c68a324ae20392e7dSam Judd     */
275ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    boolean isPaused();
2836d52a4b762f98482163e38c68a324ae20392e7dSam Judd
2936d52a4b762f98482163e38c68a324ae20392e7dSam Judd    /**
308a6067fbe2a670d2e893c79c9c0ec17817da6568Sam Judd     * Returns true if this request is running and has not completed or failed.
318a6067fbe2a670d2e893c79c9c0ec17817da6568Sam Judd     */
325ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    boolean isRunning();
338a6067fbe2a670d2e893c79c9c0ec17817da6568Sam Judd
348a6067fbe2a670d2e893c79c9c0ec17817da6568Sam Judd    /**
3536d52a4b762f98482163e38c68a324ae20392e7dSam Judd     * Returns true if the request has completed successfully.
360ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd     */
375ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    boolean isComplete();
3827eb05702fd4531d6974640c62df1d569629edb6Sam Judd
3927eb05702fd4531d6974640c62df1d569629edb6Sam Judd    /**
40f2285a83d5ac3e79383278b91aa21b0a87603cd1Sam Judd     * Returns true if a non-placeholder resource is set. For Requests that load more than one resource, isResourceSet
41f2285a83d5ac3e79383278b91aa21b0a87603cd1Sam Judd     * may return true even if {@link #isComplete()}} returns false.
42f2285a83d5ac3e79383278b91aa21b0a87603cd1Sam Judd     */
435ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    boolean isResourceSet();
44f2285a83d5ac3e79383278b91aa21b0a87603cd1Sam Judd
45f2285a83d5ac3e79383278b91aa21b0a87603cd1Sam Judd    /**
4636d52a4b762f98482163e38c68a324ae20392e7dSam Judd     * Returns true if the request has been cancelled.
4736d52a4b762f98482163e38c68a324ae20392e7dSam Judd     */
485ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    boolean isCancelled();
4936d52a4b762f98482163e38c68a324ae20392e7dSam Judd
5036d52a4b762f98482163e38c68a324ae20392e7dSam Judd    /**
5127eb05702fd4531d6974640c62df1d569629edb6Sam Judd     * Returns true if the request has failed.
5227eb05702fd4531d6974640c62df1d569629edb6Sam Judd     */
535ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    boolean isFailed();
54d0546ba0366fc276a5ac1f4c2eea88901166f7beSam Judd
55fe090f50f3040f4d478143a3e0ffa8cdf813fefcSam Judd    /**
56fe090f50f3040f4d478143a3e0ffa8cdf813fefcSam Judd     * Recycles the request object and releases its resources.
57fe090f50f3040f4d478143a3e0ffa8cdf813fefcSam Judd     */
585ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd    void recycle();
590ba0245a97116b2f2c7bd67213961ac4e2dc3e56Sam Judd}
60