示例#1
0
        private void Deflate(bool flushing)
        {
            while (flushing || !this.deflater.IsNeedingInput)
            {
                int deflateCount = this.deflater.Deflate(this.buffer, 0, BufferLength);

                if (deflateCount <= 0)
                {
                    break;
                }

                this.rawStream.Write(this.buffer, 0, deflateCount);
            }

            if (!this.deflater.IsNeedingInput)
            {
                DeflateThrowHelper.ThrowNoDeflate();
            }
        }
示例#2
0
        private void Finish()
        {
            this.deflater.Finish();
            while (!this.deflater.IsFinished)
            {
                int len = this.deflater.Deflate(this.buffer, 0, BufferLength);
                if (len <= 0)
                {
                    break;
                }

                this.rawStream.Write(this.buffer, 0, len);
            }

            if (!this.deflater.IsFinished)
            {
                DeflateThrowHelper.ThrowNoDeflate();
            }

            this.rawStream.Flush();
        }