@Override protected void encode(ChannelHandlerContext ctx, ByteBuf in, ByteBuf out) throws Exception { final int length = in.readableBytes(); final int idx = in.readerIndex(); final byte[] input; final int inputPtr; if (in.hasArray()) { input = in.array(); inputPtr = in.arrayOffset() + idx; } else { input = recycler.allocInputBuffer(length); in.getBytes(idx, input, 0, length); inputPtr = 0; } final int maxOutputLength = LZFEncoder.estimateMaxWorkspaceSize(length); out.ensureWritable(maxOutputLength); final byte[] output = out.array(); final int outputPtr = out.arrayOffset() + out.writerIndex(); final int outputLength = LZFEncoder.appendEncoded(encoder, input, inputPtr, length, output, outputPtr) - outputPtr; out.writerIndex(out.writerIndex() + outputLength); in.skipBytes(length); if (!in.hasArray()) { recycler.releaseInputBuffer(input); } } }
public byte[] deflate(byte[] data) throws IOException { return LZFEncoder.encode(data); }
@Override public ByteBuffer compress(ByteBuffer in, ByteBuffer out) { try (final ResourceHolder<BufferRecycler> bufferRecycler = CompressedPools.getBufferRecycler()) { int encodedLen = LZFEncoder.appendEncoded( in.array(), in.arrayOffset() + in.position(), in.remaining(), out.array(), out.arrayOffset(), bufferRecycler.get() ); out.clear(); out.limit(encodedLen); return out; } } }
@Override public ByteBuffer allocateOutBuffer(int inputSize, Closer closer) { return ByteBuffer.allocate(LZFEncoder.estimateMaxWorkspaceSize(inputSize)); }
/** * Method that will use "safe" {@link ChunkEncoder}, as produced by * {@link ChunkEncoderFactory#safeInstance}, for encoding. Safe here * means that it does not use any non-compliant features beyond core JDK. */ public static byte[] safeEncode(byte[] data) { return safeEncode(data, 0, data.length); }
@Override public ByteBuffer compress(ByteBuffer in, ByteBuffer out) { try (final ResourceHolder<BufferRecycler> bufferRecycler = CompressedPools.getBufferRecycler()) { int encodedLen = LZFEncoder.appendEncoded( in.array(), in.arrayOffset() + in.position(), in.remaining(), out.array(), out.arrayOffset(), bufferRecycler.get() ); out.clear(); out.limit(encodedLen); return out; } } }
@Override public ByteBuffer allocateOutBuffer(int inputSize, Closer closer) { return ByteBuffer.allocate(LZFEncoder.estimateMaxWorkspaceSize(inputSize)); }
/** * Method that will use "safe" {@link ChunkEncoder}, as produced by * {@link ChunkEncoderFactory#safeInstance}, for encoding. Safe here * means that it does not use any non-compliant features beyond core JDK. */ public static byte[] safeEncode(byte[] data) { return safeEncode(data, 0, data.length); }
@Override protected void encode(ChannelHandlerContext ctx, ByteBuf in, ByteBuf out) throws Exception { final int length = in.readableBytes(); final int idx = in.readerIndex(); final byte[] input; final int inputPtr; if (in.hasArray()) { input = in.array(); inputPtr = in.arrayOffset() + idx; } else { input = recycler.allocInputBuffer(length); in.getBytes(idx, input, 0, length); inputPtr = 0; } final int maxOutputLength = LZFEncoder.estimateMaxWorkspaceSize(length); out.ensureWritable(maxOutputLength); final byte[] output = out.array(); final int outputPtr = out.arrayOffset() + out.writerIndex(); final int outputLength = LZFEncoder.appendEncoded(encoder, input, inputPtr, length, output, outputPtr) - outputPtr; out.writerIndex(out.writerIndex() + outputLength); in.skipBytes(length); if (!in.hasArray()) { recycler.releaseInputBuffer(input); } } }
private int _handleFiles(File dir) throws IOException { System.out.println("Testing files from dir '" + dir.getAbsolutePath() + "'..."); int count = 0; for(File f: dir.listFiles()) { if(f.isDirectory()) { count += _handleFiles(f); } else { byte[] data = _readData(f); byte[] enc = LZFEncoder.encode(data); byte[] dec = LZFDecoder.decode(enc); assertArrayEquals("File '" + f.getAbsolutePath() + "'", data, dec); ++count; } } return count; }
@Override public ByteBuffer compress(ByteBuffer in, ByteBuffer out) { try (final ResourceHolder<BufferRecycler> bufferRecycler = CompressedPools.getBufferRecycler()) { int encodedLen = LZFEncoder.appendEncoded( in.array(), in.arrayOffset() + in.position(), in.remaining(), out.array(), out.arrayOffset(), bufferRecycler.get() ); out.clear(); out.limit(encodedLen); return out; } } }
@Override public ByteBuffer allocateOutBuffer(int inputSize, Closer closer) { return ByteBuffer.allocate(LZFEncoder.estimateMaxWorkspaceSize(inputSize)); }
/** * Method that will use "safe" {@link ChunkEncoder}, as produced by * {@link ChunkEncoderFactory#safeInstance}, for encoding. Safe here * means that it does not use any non-compliant features beyond core JDK. */ public static byte[] safeEncode(byte[] data) { return safeEncode(data, 0, data.length); }
@Override protected void encode(ChannelHandlerContext ctx, ByteBuf in, ByteBuf out) throws Exception { final int length = in.readableBytes(); final int idx = in.readerIndex(); final byte[] input; final int inputPtr; if (in.hasArray()) { input = in.array(); inputPtr = in.arrayOffset() + idx; } else { input = recycler.allocInputBuffer(length); in.getBytes(idx, input, 0, length); inputPtr = 0; } final int maxOutputLength = LZFEncoder.estimateMaxWorkspaceSize(length); out.ensureWritable(maxOutputLength); final byte[] output = out.array(); final int outputPtr = out.arrayOffset() + out.writerIndex(); final int outputLength = LZFEncoder.appendEncoded(encoder, input, inputPtr, length, output, outputPtr) - outputPtr; out.writerIndex(out.writerIndex() + outputLength); in.skipBytes(length); if (!in.hasArray()) { recycler.releaseInputBuffer(input); } } }
final String updatedBy = UUID.randomUUID().toString().substring(0, 4); final byte[] properties = LZFEncoder.encode(new byte[] { 'c', 'a', 'f', 'e' }); final String tableNameA = "test_database_export_dao_a"; final String tableNameB = "test_database_export_dao_b";
/** * Alternate version that accepts pre-allocated output buffer. *<p> * Note that {@link ChunkEncoder} instance used is one produced by * {@link ChunkEncoderFactory#optimalNonAllocatingInstance}, which typically * is "unsafe" instance if one can be used on current JVM. */ public static int appendEncoded(byte[] input, int inputPtr, int inputLength, byte[] outputBuffer, int outputPtr) { ChunkEncoder enc = ChunkEncoderFactory.optimalNonAllocatingInstance(inputLength); int len = appendEncoded(enc, input, inputPtr, inputLength, outputBuffer, outputPtr); enc.close(); return len; }
@Override protected void encode(ChannelHandlerContext ctx, ByteBuf in, ByteBuf out) throws Exception { final int length = in.readableBytes(); final int idx = in.readerIndex(); final byte[] input; final int inputPtr; if (in.hasArray()) { input = in.array(); inputPtr = in.arrayOffset() + idx; } else { input = recycler.allocInputBuffer(length); in.getBytes(idx, input, 0, length); inputPtr = 0; } final int maxOutputLength = LZFEncoder.estimateMaxWorkspaceSize(length); out.ensureWritable(maxOutputLength); final byte[] output = out.array(); final int outputPtr = out.arrayOffset() + out.writerIndex(); final int outputLength = LZFEncoder.appendEncoded(encoder, input, inputPtr, length, output, outputPtr) - outputPtr; out.writerIndex(out.writerIndex() + outputLength); in.skipBytes(length); if (!in.hasArray()) { recycler.releaseInputBuffer(input); } } }
@Override public void closeForChange() { checkUpdateMode(); try { compressed = LZFEncoder.encode(uncompressed, 0, valueLen * size); } catch (Exception e) { throw new RuntimeException("LZF encode failure", e); } }
/** * Alternate version that accepts pre-allocated output buffer. *<p> * Note that {@link ChunkEncoder} instance used is one produced by * {@link ChunkEncoderFactory#optimalNonAllocatingInstance}, which typically * is "unsafe" instance if one can be used on current JVM. */ public static int appendEncoded(byte[] input, int inputPtr, int inputLength, byte[] outputBuffer, int outputPtr, BufferRecycler bufferRecycler) { ChunkEncoder enc = ChunkEncoderFactory.optimalNonAllocatingInstance(inputLength, bufferRecycler); int len = appendEncoded(enc, input, inputPtr, inputLength, outputBuffer, outputPtr); enc.close(); return len; }
@Override protected void encode(ChannelHandlerContext ctx, ByteBuf in, ByteBuf out) throws Exception { final int length = in.readableBytes(); final int idx = in.readerIndex(); final byte[] input; final int inputPtr; if (in.hasArray()) { input = in.array(); inputPtr = in.arrayOffset() + idx; } else { input = recycler.allocInputBuffer(length); in.getBytes(idx, input, 0, length); inputPtr = 0; } final int maxOutputLength = LZFEncoder.estimateMaxWorkspaceSize(length); out.ensureWritable(maxOutputLength); final byte[] output = out.array(); final int outputPtr = out.arrayOffset() + out.writerIndex(); final int outputLength = LZFEncoder.appendEncoded(encoder, input, inputPtr, length, output, outputPtr) - outputPtr; out.writerIndex(out.writerIndex() + outputLength); in.skipBytes(length); if (!in.hasArray()) { recycler.releaseInputBuffer(input); } } }