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