• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.bumptech.glide.load.model;
2 
3 import android.util.Log;
4 
5 import com.bumptech.glide.load.Encoder;
6 import com.bumptech.glide.util.ByteArrayPool;
7 
8 import java.io.IOException;
9 import java.io.InputStream;
10 import java.io.OutputStream;
11 
12 /**
13  * An {@link com.bumptech.glide.load.Encoder} that can write an {@link java.io.InputStream} to disk.
14  */
15 public class StreamEncoder implements Encoder<InputStream> {
16     private static final String TAG = "StreamEncoder";
17 
18     @Override
encode(InputStream data, OutputStream os)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
getId()38     public String getId() {
39         return "";
40     }
41 }
42