Top Description Inners Fields Constructors Methods
io.netty5.handler.codec.compression

public final Class SnappyCompressor

extends Object
implements Compressor
Class Inheritance
All Implemented Interfaces
io.netty5.handler.codec.compression.Compressor, java.lang.AutoCloseable
Imports
io.netty5.buffer.BufferUtil, .Buffer, .BufferAllocator, java.util.function.Supplier

Compresses a Buffer using the Snappy framing format. See Snappy framing format.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static enum

Field Summary

Modifier and TypeField and Description
private static final int
MIN_COMPRESSIBLE_LENGTH

The minimum amount that we'll consider actually attempting to compress.

private final Snappy
private SnappyCompressor.State
private static final byte[]
STREAM_START

All streams should start with the "Stream identifier", containing chunk type 0xff, a length field of 0x6, and 'sNaPpY' in ASCII.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static void
calculateAndWriteChecksum(Buffer
The data to calculate the checksum for
slice
,
Buffer
The output buffer to write the checksum to
out
)

Calculates and writes the 4-byte checksum to the output buffer

public void
close()

Implements io.netty5.handler.codec.compression.Compressor.close.

# Close the compressor.
public Buffer
compress(Buffer
the Buffer that contains the data to be compressed.
in
,
BufferAllocator
the BufferAllocator that is used to allocate a new buffer (if needed) to write the compressed bytes too.
allocator
)

Implements io.netty5.handler.codec.compression.Compressor.compress.

This method will read from the input Buffer and compress into a new Buffer that will be allocated (if needed) from the BufferAllocator.
public Buffer
finish(BufferAllocator allocator)

Implements io.netty5.handler.codec.compression.Compressor.finish.

By calling this method we signal that the compression stream is marked as finish.
public boolean
isClosed()

Implements io.netty5.handler.codec.compression.Compressor.isClosed.

Return true if the decompressor was closed, false otherwise.
public boolean
isFinished()

Implements io.netty5.handler.codec.compression.Compressor.isFinished.

Returns true if the compressor was finished or closed.
public static Supplier<SnappyCompressor>

Returns:

the new instance.
newFactory
()

Creates a new snappy compressor factory.

private static void
setChunkLength(Buffer out, int lengthIdx)

private static void
writeChunkLength(Buffer
The buffer to write to
out
,
int
The length to write
chunkLength
)

Writes the 2-byte chunk length to the output buffer.

private static void
writeUnencodedChunk(Buffer in, Buffer out, int dataLength)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

MIN_COMPRESSIBLE_LENGTHback to summary
private static final int MIN_COMPRESSIBLE_LENGTH

The minimum amount that we'll consider actually attempting to compress. This value is preamble + the minimum length our Snappy service will compress (instead of just emitting a literal).

snappyback to summary
private final Snappy snappy
stateback to summary
private SnappyCompressor.State state
STREAM_STARTback to summary
private static final byte[] STREAM_START

All streams should start with the "Stream identifier", containing chunk type 0xff, a length field of 0x6, and 'sNaPpY' in ASCII.

Constructor Detail

SnappyCompressorback to summary
private SnappyCompressor()

Method Detail

calculateAndWriteChecksumback to summary
private static void calculateAndWriteChecksum(Buffer slice, Buffer out)

Calculates and writes the 4-byte checksum to the output buffer

Parameters
slice:Buffer

The data to calculate the checksum for

out:Buffer

The output buffer to write the checksum to

closeback to summary
public void close()

Implements io.netty5.handler.codec.compression.Compressor.close.

Doc from io.netty5.handler.codec.compression.Compressor.close.

# Close the compressor. After this method was called isFinished() will return true as well and it is not allowed to call compress(Buffer, BufferAllocator) or finish(BufferAllocator) anymore -

Annotations
@Override
compressback to summary
public Buffer compress(Buffer in, BufferAllocator allocator) throws CompressionException

Implements io.netty5.handler.codec.compression.Compressor.compress.

Doc from io.netty5.handler.codec.compression.Compressor.compress.

This method will read from the input Buffer and compress into a new Buffer that will be allocated (if needed) from the BufferAllocator. 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
in:Buffer

the Buffer that contains the data to be compressed.

allocator:BufferAllocator

the BufferAllocator that is used to allocate a new buffer (if needed) to write the compressed bytes too.

Returns:Buffer

the Buffer that contains the compressed data. The caller of this method takes ownership of the buffer. The return value will never be null.

Annotations
@Override
Exceptions
CompressionException:
thrown if an compression error was encountered or the compressor was closed already.
finishback to summary
public Buffer finish(BufferAllocator allocator)

Implements io.netty5.handler.codec.compression.Compressor.finish.

Doc from io.netty5.handler.codec.compression.Compressor.finish.

By calling this method we signal that the compression stream is marked as finish. The returned Buffer might contain a "trailer" which marks the end of the stream.

Returns:Buffer

the Buffer which 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 be null.

Annotations
@Override
isClosedback to summary
public boolean isClosed()

Implements io.netty5.handler.codec.compression.Compressor.isClosed.

Doc from io.netty5.handler.codec.compression.Compressor.isClosed.

Return true if the decompressor was closed, false otherwise.

Returns:boolean

true if the decompressor was closed, false otherwise.

Annotations
@Override
isFinishedback to summary
public boolean isFinished()

Implements io.netty5.handler.codec.compression.Compressor.isFinished.

Doc from io.netty5.handler.codec.compression.Compressor.isFinished.

Returns true if the compressor was finished or closed. This might happen because someone explicit called finish(BufferAllocator) / close() or the compressor implementation did decide to close itself due a compression error which can't be recovered. After isFinished() returns true the compress(Buffer, BufferAllocator) method will just return an empty buffer without consuming anything from its input buffer.

Returns:boolean

true if the compressor was marked as finished, false otherwise.

Annotations
@Override
newFactoryback to summary
public static Supplier<SnappyCompressor> newFactory()

Creates a new snappy compressor factory.

Returns:Supplier<SnappyCompressor>

the new instance.

setChunkLengthback to summary
private static void setChunkLength(Buffer out, int lengthIdx)
writeChunkLengthback to summary
private static void writeChunkLength(Buffer out, int chunkLength)

Writes the 2-byte chunk length to the output buffer.

Parameters
out:Buffer

The buffer to write to

chunkLength:int

The length to write

writeUnencodedChunkback to summary
private static void writeUnencodedChunk(Buffer in, Buffer out, int dataLength)
io.netty5.handler.codec.compression back to summary

private final Enum SnappyCompressor.State

extends Enum<SnappyCompressor.State>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final SnappyCompressor.State
public static final SnappyCompressor.State
public static final SnappyCompressor.State
public static final SnappyCompressor.State

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static SnappyCompressor.State
public static SnappyCompressor.State[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

Closedback to summary
public static final SnappyCompressor.State Closed
Finishedback to summary
public static final SnappyCompressor.State Finished
Initback to summary
public static final SnappyCompressor.State Init
Startedback to summary
public static final SnappyCompressor.State Started

Constructor Detail

Stateback to summary
private State()

Method Detail

valueOfback to summary
public static SnappyCompressor.State valueOf(String name)
valuesback to summary
public static SnappyCompressor.State[] values()