internal static void StreamCopyChunk(Stream source, Stream destination, int buffersize) { using (Leayal.ByteBuffer buffer = new Leayal.ByteBuffer(buffersize)) { int read = source.Read(buffer, 0, buffer.Length); while (read > 0) { destination.Write(buffer, 0, read); read = source.Read(buffer, 0, buffer.Length); } } }
internal static void UncompressBuffer(Stream compressedStream, Stream outStream) { using (var decompressor = new ZlibStream(compressedStream, CompressionMode.Decompress)) using (Leayal.ByteBuffer buffer = new Leayal.ByteBuffer(1024)) { int read = decompressor.Read(buffer, 0, buffer.Length); while (read > 0) { outStream.Write(buffer, 0, read); read = decompressor.Read(buffer, 0, buffer.Length); } } }
internal static byte[] UncompressBuffer(byte[] compressed) { using (var input = new MemoryStream(compressed)) using (var output = new RecyclableMemoryStream()) using (var decompressor = new ZlibStream(input, CompressionMode.Decompress)) using (Leayal.ByteBuffer buffer = new Leayal.ByteBuffer(1024)) { int read = decompressor.Read(buffer, 0, buffer.Length); while (read > 0) { output.Write(buffer, 0, read); read = decompressor.Read(buffer, 0, buffer.Length); } return(output.ToArray()); } }