/// <summary> /// compressing data with GZip /// </summary> /// <param name="dataBlock">original data</param> /// <returns>compressed data</returns> public Block Work(Block dataBlock) { if (dataBlock == null) { throw new ArgumentNullException("input data is null"); } dataBlock.Data = GZip.Compress(dataBlock.Data); return(dataBlock); }
public void Handler(ref TaskPool readerTaskPool, ref TaskPool writerTaskPool) { int blockNumber = -1; byte[] blockValue = null; while (true) { try { if (!readerTaskPool.TryGet(out blockNumber, out blockValue)) { return; } if (blockValue == null) { break; } byte[] compressedBlock = GZip.Compress(blockValue); if (!writerTaskPool.TrySet(blockNumber, compressedBlock)) { return; } } catch (Exception e) { _isDelete = true; Terminate(); Console.WriteLine(e.Message); return; } } }