/* * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.imagepipeline.producers; import com.facebook.imagepipeline.common.Priority; import com.facebook.imagepipeline.request.ImageRequest; /** * Used to pass context information to producers. * * <p> Object implementing this interface is passed to all producers participating in pipeline * request {@see Producer#produceResults}. Its responsibility is to instruct producers which image * should be fetched/decoded/resized/cached etc. This class also handles request cancellation. * * <p> In order to be notified when cancellation is requested, a producer should use the * {@code runOnCancellationRequested} method which takes an instance of Runnable and executes it * when the pipeline client cancels the image request. */ public interface ProducerContext { /** * @return image request that is being executed */ public ImageRequest getImageRequest(); /** * @return id of this request */ public String getId(); /** * @return ProducerListener for producer's events */ public ProducerListener getListener(); /** * @return the {@link Object} that indicates the caller's context */ public Object getCallerContext(); /** * @return true if the request is a prefetch, false otherwise. */ public boolean isPrefetch(); /** * @return priority of the request. */ public Priority getPriority(); /** * @return true if request's owner expects intermediate results */ public boolean isIntermediateResultExpected(); /** * Adds callbacks to the set of callbacks that are executed at various points during the * processing of a request. * @param callbacks callbacks to be executed */ public void addCallbacks(ProducerContextCallbacks callbacks); }