Пример #1
0
        /// <summary>
        /// Производит расспаковку данных их буфера рабочего элемента и записывает их в выходной поток
        /// </summary>
        /// <param name="item">Рабочий элемент</param>
        protected override void ItemFlush(WorckItem item)
        {
            item.MemoryStream.Position = 0;

            using (var st = new GZipStream(new MemoryStream(item.InputBuffer, 0, item.InputOffset), CompressionMode.Decompress, true))
            {
                st.CopyTo(item.MemoryStream);
                item.OutputSize = (int)item.MemoryStream.Position;
            }
        }
Пример #2
0
        /// <summary>
        /// Производит расспаковку данных их буфера рабочего элемента и записывает их в выходной поток
        /// </summary>
        /// <param name="item">Рабочий элемент</param>
        protected override void ItemFlush(WorckItem item)
        {
            item.MemoryStream.Position = 0;

                using (var st = new GZipStream(new MemoryStream(item.InputBuffer,0,item.InputOffset), CompressionMode.Decompress,true))
                {
                    st.CopyTo(item.MemoryStream);
                    item.OutputSize = (int) item.MemoryStream.Position;
                }
        }
Пример #3
0
        /// <summary>
        /// Производит упаковку данных их буфера рабочего элемента и записывает их в выходной поток
        /// </summary>
        /// <param name="item">Рабочий элемент</param>
        protected override void ItemFlush(WorckItem item)
        {
            item.MemoryStream.Position = 8;

            using (var st = new GZipStream(item.MemoryStream, CompressionMode.Compress, true))
                st.Write(item.InputBuffer, 0, item.InputOffset);
            item.OutputSize = (int)item.MemoryStream.Position;

            Buffer.BlockCopy(BitConverter.GetBytes(item.OutputSize), 0, item.OutputBuffer, 0, 4);
            Buffer.BlockCopy(BitConverter.GetBytes(item.Ordinal), 0, item.OutputBuffer, 4, 4);
        }
Пример #4
0
        /// <summary>
        /// Производит упаковку данных их буфера рабочего элемента и записывает их в выходной поток
        /// </summary>
        /// <param name="item">Рабочий элемент</param>
        protected override void ItemFlush(WorckItem item)
        {
            item.MemoryStream.Position = 8;


            using (var st = new GZipStream(item.MemoryStream, CompressionMode.Compress, true))
                st.Write(item.InputBuffer, 0, item.InputOffset);
            item.OutputSize = (int)item.MemoryStream.Position;

            Buffer.BlockCopy(BitConverter.GetBytes(item.OutputSize), 0, item.OutputBuffer, 0, 4);
            Buffer.BlockCopy(BitConverter.GetBytes(item.Ordinal), 0, item.OutputBuffer, 4, 4);
        }
Пример #5
0
 /// <summary>
 /// При переопределении в производном классе, определяет поведение записи данных из рабочего элемента в выходной поток
 /// </summary>
 /// <param name="item">Рабочий элемент</param>
 protected abstract void ItemFlush(WorckItem item);
Пример #6
0
 /// <summary>
 /// При переопределении в производном классе, определяет поведение записи данных из рабочего элемента в выходной поток
 /// </summary>
 /// <param name="item">Рабочий элемент</param>
 protected abstract void ItemFlush(WorckItem item);