org.h2.compress
Class CompressLZF

java.lang.Object
  extended by org.h2.compress.CompressLZF
All Implemented Interfaces:
Compressor

public final class CompressLZF
extends java.lang.Object
implements Compressor

This class implements the LZF lossless data compression algorithm. LZF is a Lempel-Ziv variant with byte-aligned output, and optimized for speed.

Safety/Use Notes:

The LZF compressed format knows literal runs and back-references:

The first byte of the compressed stream is the control byte. For literal runs, the highest three bits of the control byte are not set, the the lower bits are the literal run length, and the next bytes are data to copy directly into the output. For back-references, the highest three bits of the control byte are the back-reference length. If all three bits are set, then the back-reference length is stored in the next byte. The lower bits of the control byte combined with the next byte form the offset for the back-reference.


Field Summary
 
Fields inherited from interface org.h2.compress.Compressor
DEFLATE, LZF, NO
 
Constructor Summary
CompressLZF()
           
 
Method Summary
 int compress(byte[] in, int inLen, byte[] out, int outPos)
          Compress a number of bytes.
 void expand(byte[] in, int inPos, int inLen, byte[] out, int outPos, int outLen)
          Expand a number of compressed bytes.
 int getAlgorithm()
          Get the compression algorithm type.
 void setOptions(java.lang.String options)
          Set the compression options.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompressLZF

public CompressLZF()
Method Detail

setOptions

public void setOptions(java.lang.String options)
Description copied from interface: Compressor
Set the compression options. This may include settings for higher performance but less compression.

Specified by:
setOptions in interface Compressor
Parameters:
options - the options

compress

public int compress(byte[] in,
                    int inLen,
                    byte[] out,
                    int outPos)
Description copied from interface: Compressor
Compress a number of bytes.

Specified by:
compress in interface Compressor
Parameters:
in - the input data
inLen - the number of bytes to compress
out - the output area
outPos - the offset at the output array
Returns:
the end position

expand

public void expand(byte[] in,
                   int inPos,
                   int inLen,
                   byte[] out,
                   int outPos,
                   int outLen)
Description copied from interface: Compressor
Expand a number of compressed bytes.

Specified by:
expand in interface Compressor
Parameters:
in - the compressed data
inPos - the offset at the input array
inLen - the number of bytes to read
out - the output area
outPos - the offset at the output array
outLen - the size of the uncompressed data

getAlgorithm

public int getAlgorithm()
Description copied from interface: Compressor
Get the compression algorithm type.

Specified by:
getAlgorithm in interface Compressor
Returns:
the type