Esempio n. 1
0
 protected override void BlockProcessing(IThreadBlock threadBlock)
 {
     using (GZipStream gzipStream = new GZipStream(new MemoryStream(threadBlock.buffer), CompressionMode.Decompress))
     {
         var result = new byte[threadBlock.actualLength];
         gzipStream.Read(result, 0, threadBlock.actualLength);
         _mtxBlocks.WaitOne();
         _blocks.Add(threadBlock.blockNumber, result);
         _mtxBlocks.ReleaseMutex();
     }
     _threadReady[threadBlock.threadNumber] = true;
 }
Esempio n. 2
0
        protected override void BlockProcessing(IThreadBlock threadBlock)
        {
            using (MemoryStream _memoryStream = new MemoryStream())
            {
                using (GZipStream cs = new GZipStream(_memoryStream, CompressionMode.Compress))
                {
                    cs.Write(threadBlock.buffer, 0, threadBlock.actualLength);
                }

                byte[] compressedData           = _memoryStream.ToArray();
                byte[] compressedDataWithLength = new byte[compressedData.Length + 8];
                byte[] lengthCompressed         = BitConverter.GetBytes(compressedData.Length);
                byte[] lengthOriginal           = BitConverter.GetBytes(threadBlock.actualLength);
                lengthCompressed.CopyTo(compressedDataWithLength, 0);
                lengthOriginal.CopyTo(compressedDataWithLength, 4);
                compressedData.CopyTo(compressedDataWithLength, 8);
                _mtxBlocks.WaitOne();
                _blocks.Add(threadBlock.blockNumber, compressedDataWithLength);
                _mtxBlocks.ReleaseMutex();
            }
            _threadReady[threadBlock.threadNumber] = true;
        }
Esempio n. 3
0
 protected abstract void BlockProcessing(IThreadBlock threadBlock);