public static void Run() { using (var factory = new PipelineFactory()) { var filePath = Path.GetFullPath("Program.cs"); // This is what Stream looks like //var fs = File.OpenRead(filePath); //var compressed = new MemoryStream(); //var compressStream = new DeflateStream(compressed, CompressionMode.Compress); //fs.CopyTo(compressStream); //compressStream.Flush(); //compressed.Seek(0, SeekOrigin.Begin); var input = factory.ReadFile(filePath) .DeflateCompress(factory, CompressionLevel.Optimal) .DeflateDecompress(factory); // Wrap the console in a pipeline writer var output = factory.CreateWriter(Console.OpenStandardOutput()); // Copy from the file reader to the console writer input.CopyToAsync(output).GetAwaiter().GetResult(); input.Complete(); output.Complete(); } }
public StreamPipelineConnection(PipelineFactory factory, Stream stream) { Input = factory.CreateReader(stream); Output = factory.CreateWriter(stream); }
public static IPipelineWriter CreateGZipCompressWriter(this PipelineFactory factory, IPipelineWriter writer, CompressionLevel compressionLevel) { var deflater = new WritableDeflateTransform(compressionLevel, ZLibNative.GZip_DefaultWindowBits); return(factory.CreateWriter(writer, deflater.Execute)); }
public static IPipelineWriter GZipCompress(this IPipelineWriter writer, PipelineFactory factory, CompressionLevel compressionLevel) { var deflater = new WritableDeflateTransform(compressionLevel, ZLibNative.GZip_DefaultWindowBits); return factory.CreateWriter(writer, deflater.Execute); }