From 34268a10dff124c9228f205cab080e4adaeabfdd Mon Sep 17 00:00:00 2001
From: Vojtech Moravec <vojtech.moravec.st@vsb.cz>
Date: Mon, 21 Sep 2020 15:31:27 +0200
Subject: [PATCH] First prototype of client decompression.

---
 .../RemoteVolatileShortArrayLoader.java       | 24 +++++++------------
 1 file changed, 9 insertions(+), 15 deletions(-)

diff --git a/src/main/java/bdv/img/remote/RemoteVolatileShortArrayLoader.java b/src/main/java/bdv/img/remote/RemoteVolatileShortArrayLoader.java
index 60078082..f100a727 100644
--- a/src/main/java/bdv/img/remote/RemoteVolatileShortArrayLoader.java
+++ b/src/main/java/bdv/img/remote/RemoteVolatileShortArrayLoader.java
@@ -29,21 +29,22 @@
  */
 package bdv.img.remote;
 
+import azgracompress.compression.ImageDecompressor;
+import bdv.img.cache.CacheArrayLoader;
+import net.imglib2.img.basictypeaccess.volatiles.array.VolatileShortArray;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
 
-import azgracompress.compression.ImageDecompressor;
-import bdv.img.cache.CacheArrayLoader;
-import net.imglib2.img.basictypeaccess.volatiles.array.VolatileShortArray;
-
 public class RemoteVolatileShortArrayLoader implements CacheArrayLoader<VolatileShortArray> {
     private final RemoteImageLoader imgLoader;
 
-    private ImageDecompressor decompressor;
     private boolean requestCompressedData = false;
+    private ImageDecompressor decompressor;
+
 
     public RemoteVolatileShortArrayLoader(final RemoteImageLoader imgLoader) {
         this.imgLoader = imgLoader;
@@ -115,17 +116,10 @@ public class RemoteVolatileShortArrayLoader implements CacheArrayLoader<Volatile
             connection.setRequestMethod("GET");
             connection.connect();
 
-            final byte[] buf = new byte[connection.getContentLength()];
-            final InputStream urlStream = connection.getInputStream();
-
-            //noinspection StatementWithEmptyBody
-            for (int i = 0, l = urlStream.read(buf, 0, buf.length);
-                 l > 0;
-                 i += l, l = urlStream.read(buf, i, buf.length - i))
-                ;
-
+            final int contentLength = connection.getContentLength();
 
-            data = decompressor.decompressStream(urlStream);
+            final InputStream urlStream = connection.getInputStream();
+            data = decompressor.decompressStream(urlStream, contentLength);
 
             urlStream.close();
         } catch (final Exception e) {
-- 
GitLab