@Override public final void decompress(final ByteIn in, final int[] out, final int num) throws IOException { final int ints = in.readVInt(); final int len = ints*4; //System.err.println("reading " + len + " bytes"); assert len >= 0; inpos.set(0); outpos.set(0); if (inBuffer.capacity() < len) inBuffer = ByteBuffer.allocate(len * 2); else inBuffer.position(0); in.readFully(inBuffer.array(), 0, len); supportArray = ArrayUtils.growOrCreate(supportArray, ints); inBuffer.asIntBuffer().get(supportArray, 0, ints); codec.headlessUncompress(supportArray, inpos, ints, out, outpos, num); }
@Override public final void decompress(final ByteIn in, final int[] out, final int num) throws IOException { final int ints = in.readVInt(); final int len = ints*4; //System.err.println("reading " + len + " bytes"); assert len >= 0; inpos.set(0); outpos.set(0); if (inBuffer.capacity() < len) inBuffer = ByteBuffer.allocate(len * 2); else inBuffer.position(0); in.readFully(inBuffer.array(), 0, len); supportArray = ArrayUtils.growOrCreate(supportArray, ints); inBuffer.asIntBuffer().get(supportArray, 0, ints); codec.headlessUncompress(supportArray, inpos, ints, out, outpos, num); }
@Override public final void compress(final int[] in, final int len, final ByteOut out) throws IOException { inpos.set(0); outpos.set(0); supportArray = ArrayUtils.growOrCreate(supportArray, len * 4 + 1024); codec.headlessCompress(in, inpos, len, supportArray, outpos); int bytes = outpos.get() * 4; if (outBuffer.capacity() < bytes) outBuffer = ByteBuffer.allocate(bytes * 2); else outBuffer.position(0); outBuffer.asIntBuffer().put(supportArray, 0, outpos.get()); out.writeVInt(outpos.get()); out.write(outBuffer.array(), 0, bytes); }
@Override public final void compress(final int[] in, final int len, final ByteOut out) throws IOException { inpos.set(0); outpos.set(0); supportArray = ArrayUtils.growOrCreate(supportArray, len * 4 + 1024); codec.headlessCompress(in, inpos, len, supportArray, outpos); int bytes = outpos.get() * 4; if (outBuffer.capacity() < bytes) outBuffer = ByteBuffer.allocate(bytes * 2); else outBuffer.position(0); outBuffer.asIntBuffer().put(supportArray, 0, outpos.get()); out.writeVInt(outpos.get()); out.write(outBuffer.array(), 0, bytes); }
/** * This load the a chunk (tfs, fields and blocks (optionally)) and decompress it * @throws IOException */ protected final void decompress() throws IOException { super.decompress(); if (hasBlocks > 0) { tfsCodec.decompress(input, bfs, chunkSize); int numBlocks = 0; for (int i = 0; i < chunkSize; i++) numBlocks += bfs[i]; // if (hasBlocks > 1) { // tfsCodec.decompress(input, bfs, chunkSize); // } // // int numBlocks = 0; // if (maxBlocks > 0) // for (int i = 0; i < chunkSize; i++) numBlocks += Math.min(bfs[i], maxBlocks); // else // for (int i = 0; i < chunkSize; i++) numBlocks += bfs[i]; blocksMatrix = ArrayUtils.growOrCreate(blocksMatrix, numBlocks); blocksCodec.decompress(input, blocksMatrix, numBlocks); } }
/** * This load the a chunk (tfs, fields and blocks (optionally)) and decompress it * @throws IOException */ protected final void decompress() throws IOException { super.decompress(); if (hasBlocks > 0) { tfsCodec.decompress(input, bfs, chunkSize); int numBlocks = 0; for (int i = 0; i < chunkSize; i++) numBlocks += bfs[i]; // if (hasBlocks > 1) { // tfsCodec.decompress(input, bfs, chunkSize); // } // // int numBlocks = 0; // if (maxBlocks > 0) // for (int i = 0; i < chunkSize; i++) numBlocks += Math.min(bfs[i], maxBlocks); // else // for (int i = 0; i < chunkSize; i++) numBlocks += bfs[i]; blocksMatrix = ArrayUtils.growOrCreate(blocksMatrix, numBlocks); blocksCodec.decompress(input, blocksMatrix, numBlocks); } }
blocksMatrix = ArrayUtils.growOrCreate(blocksMatrix, numBlocks); blocksCodec.decompress(input, blocksMatrix, numBlocks);
blocksMatrix = ArrayUtils.growOrCreate(blocksMatrix, numBlocks); blocksCodec.decompress(input, blocksMatrix, numBlocks);
/** * This load the a chunk (tfs, fields and blocks (optionally)) and decompress it * @throws IOException */ protected final void decompress() throws IOException { tfsCodec.decompress(input, tfs, chunkSize); if (fieldsCount > 0) { for (int j = 0; j < fieldsCount; j++) { fieldsCodec.decompress(input, fieldsMatrix[j], chunkSize); } } if (hasBlocks > 0) { // if (hasBlocks > 1) { // tfsCodec.decompress(input, bfs, chunkSize); // } tfsCodec.decompress(input, bfs, chunkSize); int numBlocks = 0; for (int i = 0; i < chunkSize; i++) numBlocks += bfs[i]; blocksMatrix = ArrayUtils.growOrCreate(blocksMatrix, numBlocks); blocksCodec.decompress(input, blocksMatrix, numBlocks); } decompressed = true; }
/** * This load the a chunk (tfs, fields and blocks (optionally)) and decompress it * @throws IOException */ protected final void decompress() throws IOException { tfsCodec.decompress(input, tfs, chunkSize); if (fieldsCount > 0) { for (int j = 0; j < fieldsCount; j++) { fieldsCodec.decompress(input, fieldsMatrix[j], chunkSize); } } if (hasBlocks > 0) { // if (hasBlocks > 1) { // tfsCodec.decompress(input, bfs, chunkSize); // } tfsCodec.decompress(input, bfs, chunkSize); int numBlocks = 0; for (int i = 0; i < chunkSize; i++) numBlocks += bfs[i]; blocksMatrix = ArrayUtils.growOrCreate(blocksMatrix, numBlocks); blocksCodec.decompress(input, blocksMatrix, numBlocks); } decompressed = true; }