/// <summary>Скопировать данные из одного <see cref="Stream"/> в другой.</summary> /// <param name="src">Поток - источник данных.</param> /// <param name="dst">Поток - получатель данных.</param> /// <param name="bp">Пул буферов, который будет использован для копирования.</param> /// <param name="bufferSize">Размер буфера, который будет использован для копирования.</param> public static void Copy(Stream src, Stream dst, BufferPool bp, int bufferSize) { BufferPool.Buffer buffer = null; if (bp != null) buffer = bp.Allocate(bufferSize, 0); if (buffer == null) buffer = new BufferPool.Buffer(null, bufferSize); using (buffer) { Copy(src, dst, buffer); } }
/// <summary>Создать новый <see cref="Buffer"/>.</summary> /// <param name="pool"><see cref="BufferPool"/>, который будет управлять буфером.</param> /// <param name="size">Размер нового буфера в байтах.</param> /// <remarks><paramref name="pool"/> может принимать значение <b>null</b>, это означает что /// новым буфером не будет управлять <see cref="BufferPool"/>.</remarks> public Buffer(BufferPool pool, int size) { this.pool = pool; buffer = new byte[size]; mustClean = false; }