Cimbalino.Phone.Toolkit.Compression.InflateManager.Initialize C# (CSharp) Method

Initialize() private method

private Initialize ( ZlibCodec codec, int w ) : int
codec ZlibCodec
w int
return int
        internal int Initialize(ZlibCodec codec, int w)
        {
            _codec = codec;
            _codec.Message = null;
            blocks = null;

            // handle undocumented nowrap option (no zlib header or check)
            //nowrap = 0;
            //if (w < 0)
            //{
            //    w = - w;
            //    nowrap = 1;
            //}

            // set window size
            if (w < 8 || w > 15)
            {
                End();
                throw new ZlibException("Bad window size.");

                //return ZlibConstants.Z_STREAM_ERROR;
            }
            wbits = w;

            blocks = new InflateBlocks(codec,
                HandleRfc1950HeaderBytes ? this : null,
                1 << w);

            // reset state
            Reset();
            return ZlibConstants.Z_OK;
        }

Usage Example

 /// <summary>
 /// Initialize the inflation state with an explicit flag to govern the handling of
 /// RFC1950 header bytes. 
 /// </summary>
 ///
 /// <remarks>
 /// If you want to read a zlib stream you should specify true for
 /// expectRfc1950Header. In this case, the library will expect to find a ZLIB
 /// header, as defined in <see href="http://www.ietf.org/rfc/rfc1950.txt">RFC
 /// 1950</see>, in the compressed stream.  If you will be reading a DEFLATE or
 /// GZIP stream, which does not have such a header, you will want to specify
 /// false.
 /// </remarks>
 ///
 /// <param name="expectRfc1950Header">whether to expect an RFC1950 header byte pair when reading 
 /// the stream of data to be inflated.</param>
 /// <param name="windowBits">The number of window bits to use. If you need to ask what that is, 
 /// then you shouldn't be calling this initializer.</param>
 /// <returns>Z_OK if everything goes well.</returns>
 public int InitializeInflate(int windowBits, bool expectRfc1950Header)
 {
     this.WindowBits = windowBits;
     if (dstate != null) throw new ZlibException("You may not call InitializeInflate() after calling InitializeDeflate().");
     istate = new InflateManager(expectRfc1950Header);
     return istate.Initialize(this, windowBits);
 }