-
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
BrotliCompressor,Bzip2Compressor,FastLzCompressor,Lz4Compressor,LzfCompressor,LzmaCompressor,SnappyCompressor,ZlibCompressor,ZstdCompressor
public interface Compressor extends AutoCloseable
Compressor that takes care of compress some input.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclose()# Close the compressor.Buffercompress(Buffer input, BufferAllocator allocator)This method will read from the inputBufferand compress into a newBufferthat will be allocated (if needed) from theBufferAllocator.Bufferfinish(BufferAllocator allocator)By calling this method we signal that the compression stream is marked as finish.booleanisClosed()Returntrueif the decompressor was closed,falseotherwise.booleanisFinished()Returns true if the compressor was finished or closed.
-
-
-
Method Detail
-
compress
Buffer compress(Buffer input, BufferAllocator allocator) throws CompressionException
This method will read from the inputBufferand compress into a newBufferthat will be allocated (if needed) from theBufferAllocator. This method is expected to consume all data from the input but not take ownership. The caller is responsible to release the input buffer after this method returns.- Parameters:
input- theBufferthat contains the data to be compressed.allocator- theBufferAllocatorthat is used to allocate a new buffer (if needed) to write the compressed bytes too.- Returns:
- the
Bufferthat contains the compressed data. The caller of this method takes ownership of the buffer. The return value will never benull. - Throws:
CompressionException- thrown if an compression error was encountered or the compressor was closed already.
-
finish
Buffer finish(BufferAllocator allocator) throws CompressionException
By calling this method we signal that the compression stream is marked as finish. The returnedBuffermight contain a "trailer" which marks the end of the stream.- Returns:
- the
Bufferwhich represent the end of the compression stream, which might be empty if the compressor don't need a trailer to signal the end. The caller of this method takes ownership of the buffer. The return value will never benull. - Throws:
CompressionException- thrown if a compression error was encountered or the compressor was closed already.
-
isFinished
boolean isFinished()
Returns true if the compressor was finished or closed. This might happen because someone explicit calledfinish(BufferAllocator)/close()or the compressor implementation did decide to close itself due a compression error which can't be recovered. AfterisFinished()returnstruethecompress(Buffer, BufferAllocator)method will just return an empty buffer without consuming anything from its input buffer.- Returns:
trueif the compressor was marked as finished,falseotherwise.
-
isClosed
boolean isClosed()
Returntrueif the decompressor was closed,falseotherwise.- Returns:
trueif the decompressor was closed,falseotherwise.
-
close
void close()
# Close the compressor. After this method was calledisFinished()will returntrueas well and it is not allowed to callcompress(Buffer, BufferAllocator)orfinish(BufferAllocator)anymore -- Specified by:
closein interfaceAutoCloseable
-
-