Class LZFChunk


  • public class LZFChunk
    extends java.lang.Object
    Helper class used to store LZF encoded segments (compressed and non-compressed) that can be sequenced to produce LZF files/streams.
    • Field Detail

      • MAX_LITERAL

        public static final int MAX_LITERAL
        Maximum length of literal run for LZF encoding.
        See Also:
        Constant Field Values
      • MAX_CHUNK_LEN

        public static final int MAX_CHUNK_LEN
        Chunk length is limited by 2-byte length indicator, to 64k
        See Also:
        Constant Field Values
      • MAX_HEADER_LEN

        public static final int MAX_HEADER_LEN
        Header can be either 7 bytes (compressed) or 5 bytes (uncompressed) long
        See Also:
        Constant Field Values
      • HEADER_LEN_NOT_COMPRESSED

        public static final int HEADER_LEN_NOT_COMPRESSED
        See Also:
        Constant Field Values
      • BLOCK_TYPE_NON_COMPRESSED

        public static final int BLOCK_TYPE_NON_COMPRESSED
        See Also:
        Constant Field Values
      • _data

        protected final byte[] _data
    • Constructor Detail

      • LZFChunk

        private LZFChunk​(byte[] data)
    • Method Detail

      • createCompressed

        public static LZFChunk createCompressed​(int origLen,
                                                byte[] encData,
                                                int encPtr,
                                                int encLen)
        Factory method for constructing compressed chunk
      • appendCompressedHeader

        public static int appendCompressedHeader​(int origLen,
                                                 int encLen,
                                                 byte[] headerBuffer,
                                                 int offset)
      • writeCompressedHeader

        public static void writeCompressedHeader​(int origLen,
                                                 int encLen,
                                                 java.io.OutputStream out,
                                                 byte[] headerBuffer)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • createNonCompressed

        public static LZFChunk createNonCompressed​(byte[] plainData,
                                                   int ptr,
                                                   int len)
        Factory method for constructing compressed chunk
      • appendNonCompressed

        public static int appendNonCompressed​(byte[] plainData,
                                              int ptr,
                                              int len,
                                              byte[] outputBuffer,
                                              int outputPtr)
        Method for appending specific content as non-compressed chunk, in given buffer.
      • appendNonCompressedHeader

        public static int appendNonCompressedHeader​(int len,
                                                    byte[] headerBuffer,
                                                    int offset)
      • writeNonCompressedHeader

        public static void writeNonCompressedHeader​(int len,
                                                    java.io.OutputStream out,
                                                    byte[] headerBuffer)
                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • setNext

        public void setNext​(LZFChunk next)
      • length

        public int length()
      • getData

        public byte[] getData()
      • copyTo

        public int copyTo​(byte[] dst,
                          int ptr)