1package com.bumptech.glide.load.model;
2
3import android.util.Log;
4
5import com.bumptech.glide.load.Encoder;
6import com.bumptech.glide.util.ByteArrayPool;
7
8import java.io.IOException;
9import java.io.InputStream;
10import java.io.OutputStream;
11
12/**
13 * An {@link com.bumptech.glide.load.Encoder} that can write an {@link java.io.InputStream} to disk.
14 */
15public class StreamEncoder implements Encoder<InputStream> {
16    private static final String TAG = "StreamEncoder";
17
18    @Override
19    public boolean encode(InputStream data, OutputStream os) {
20        byte[] buffer = ByteArrayPool.get().getBytes();
21        try {
22            int read;
23            while ((read = data.read(buffer)) != -1) {
24                    os.write(buffer, 0, read);
25            }
26            return true;
27        } catch (IOException e) {
28            if (Log.isLoggable(TAG, Log.DEBUG)) {
29                Log.d(TAG, "Failed to encode data onto the OutputStream", e);
30            }
31            return false;
32        } finally {
33            ByteArrayPool.get().releaseBytes(buffer);
34        }
35    }
36
37    @Override
38    public String getId() {
39        return "";
40    }
41}
42