Beispiel #1
0
    /// <summary>
    ///   Construct instance with pending buffer
    /// </summary>
    /// <param name="pending">
    ///   Pending buffer to use
    /// </param>
    /// >
    public DeflaterEngine(DeflaterPending pending)
    {
      this.pending = pending;
      huffman = new DeflaterHuffman(pending);
      adler = new Adler32();

      window = new byte[2*DeflaterConstants.WSIZE];
      head = new short[DeflaterConstants.HASH_SIZE];
      prev = new short[DeflaterConstants.WSIZE];

      // We start at index 1, to avoid an implementation deficiency, that
      // we cannot build a repeat pattern at index 0.
      blockStart = strstart = 1;
    }
Beispiel #2
0
 /// <summary>
 ///   Creates a new inflater.
 /// </summary>
 /// <param name="noHeader">
 ///   True if no RFC1950/Zlib header and footer fields are expected in the input data
 ///   This is used for GZIPed/Zipped input.
 ///   For compatibility with
 ///   Sun JDK you should provide one byte of input more than needed in
 ///   this case.
 /// </param>
 public Inflater(bool noHeader)
 {
   this.noHeader = noHeader;
   adler = new Adler32();
   input = new StreamManipulator();
   outputWindow = new OutputWindow();
   mode = noHeader ? DECODE_BLOCKS : DECODE_HEADER;
 }