1package com.bumptech.glide.load.engine;
2
3import com.bumptech.glide.Priority;
4import com.bumptech.glide.load.Encoder;
5import com.bumptech.glide.load.ResourceDecoder;
6import com.bumptech.glide.load.ResourceEncoder;
7import com.bumptech.glide.load.Transformation;
8import com.bumptech.glide.load.data.DataFetcher;
9import com.bumptech.glide.load.resource.transcode.ResourceTranscoder;
10
11import java.io.InputStream;
12
13interface ResourceRunnerFactory {
14    /**
15     *
16     * @param key
17     * @param cacheDecoder
18     * @param fetcher
19     * @param decoder
20     * @param transformation
21     * @param encoder
22     * @param priority
23     * @param <T> The type of data the resource will be decoded from.
24     * @param <Z> The type of the resource that will be decoded.
25     * @param <R> The type of the resource that will be transcoded to from the decoded resource.
26     * @return
27     */
28    public <T, Z, R> ResourceRunner<Z, R> build(EngineKey key, int width, int height,
29            ResourceDecoder<InputStream, Z> cacheDecoder, DataFetcher<T> fetcher, boolean cacheSource,
30            Encoder<T> sourceEncoder, ResourceDecoder<T, Z> decoder, Transformation<Z> transformation,
31            ResourceEncoder<Z> encoder, ResourceTranscoder<Z, R> transcoder, Priority priority,
32            boolean isMemoryCacheable, EngineJobListener listener);
33}
34