using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; using System.Linq; using System.Threading.Tasks; namespace JsonRPC4.Common.Tools { public class DefaultStreamCompressor : IStreamCompressor { public bool TryGetCompressionStream(Stream uncompressedStream, string encoding, CompressionMode mode, out Stream compressedStream) { switch (encoding) { case "gzip": compressedStream = new GZipStream(uncompressedStream, mode, leaveOpen: false); return true; case "deflate": compressedStream = new DeflateStream(uncompressedStream, mode, leaveOpen: false); return true; default: compressedStream = uncompressedStream; return false; } } } }