public static CompressResult Compress([NotNull] Stream inputFile, [NotNull] Stream compressFile = null, int blockSize = 0x100000, Lz4Mode mode = 0, Action <CompressResult> blockCallback = null) { long position; if (inputFile == null) { throw new ArgumentNullException(nameof(inputFile)); } if (compressFile == null) { throw new ArgumentNullException(nameof(compressFile)); } CompressResult result = new CompressResult(); byte[] buffer = new byte[blockSize]; try { position = compressFile.Position; } catch (Exception) { position = -1L; result.CompressedBytes = -1L; } using (Lz4CompressionStream stream = new Lz4CompressionStream(compressFile, 0x100000, mode)) { goto Label_00E9; Label_006D: int num2 = inputFile.Read(buffer, 0, buffer.Length); if (num2 == 0) { return(result); } result.Bytes += num2; stream.Write(buffer, 0, num2); if (position != -1L) { long num3 = compressFile.Position; result.CompressedBytes += num3 - position; position = num3; } if (blockCallback != null) { blockCallback(result); } Label_00E9: goto Label_006D; } }
public static CompressResult Compress([NotNull] Stream inputFile, [NotNull] Stream compressFile = null, int blockSize = 0x100000, Lz4Mode mode = 0, Action<CompressResult> blockCallback = null) { long position; if (inputFile == null) { throw new ArgumentNullException("inputFile"); } if (compressFile == null) { throw new ArgumentNullException("compressFile"); } CompressResult result = new CompressResult(); byte[] buffer = new byte[blockSize]; try { position = compressFile.Position; } catch (Exception) { position = -1L; result.CompressedBytes = -1L; } using (Lz4CompressionStream stream = new Lz4CompressionStream(compressFile, 0x100000, mode)) { goto Label_00E9; Label_006D: int num2 = inputFile.Read(buffer, 0, buffer.Length); if (num2 == 0) { return result; } result.Bytes += num2; stream.Write(buffer, 0, num2); if (position != -1L) { long num3 = compressFile.Position; result.CompressedBytes += num3 - position; position = num3; } if (blockCallback != null) { blockCallback(result); } Label_00E9: goto Label_006D; } }
public static CompressResult Decompress([NotNull] Stream compressedFile, [NotNull] Stream outputFile, int bufferSize = 0x100000, Action <CompressResult> blockCallback = null) { long position; if (compressedFile == null) { throw new ArgumentNullException(nameof(compressedFile)); } if (outputFile == null) { throw new ArgumentNullException(nameof(outputFile)); } byte[] buffer = new byte[bufferSize]; CompressResult result = new CompressResult(); try { position = compressedFile.Position; } catch (Exception) { position = -1L; result.Bytes = -1L; } using (Lz4DecompressionStream stream = new Lz4DecompressionStream(compressedFile)) { int num2; while ((num2 = stream.Read(buffer, 0, buffer.Length)) > 0) { outputFile.Write(buffer, 0, num2); result.CompressedBytes += num2; if (position != -1L) { long num3 = compressedFile.Position; result.Bytes += num3 - position; position = num3; } if (blockCallback != null) { blockCallback(result); } } } return(result); }
public static CompressResult Decompress([NotNull] Stream compressedFile, [NotNull] Stream outputFile, int bufferSize = 0x100000, Action<CompressResult> blockCallback = null) { long position; if (compressedFile == null) { throw new ArgumentNullException("compressedFile"); } if (outputFile == null) { throw new ArgumentNullException("outputFile"); } byte[] buffer = new byte[bufferSize]; CompressResult result = new CompressResult(); try { position = compressedFile.Position; } catch (Exception) { position = -1L; result.Bytes = -1L; } using (Lz4DecompressionStream stream = new Lz4DecompressionStream(compressedFile)) { int num2; while ((num2 = stream.Read(buffer, 0, buffer.Length)) > 0) { outputFile.Write(buffer, 0, num2); result.CompressedBytes += num2; if (position != -1L) { long num3 = compressedFile.Position; result.Bytes += num3 - position; position = num3; } if (blockCallback != null) { blockCallback(result); } } } return result; }