public void Write(TorrentFile file, long offset, byte[] buffer, int bufferOffset, int count, bool forceWrite) { if (forceWrite) { writer.Write(file, offset, buffer, bufferOffset, count); } else { if (Used > (Capacity - count)) { Flush(0); } byte[] cacheBuffer = BufferManager.EmptyBuffer; ClientEngine.BufferManager.GetBuffer(ref cacheBuffer, count); Buffer.BlockCopy(buffer, bufferOffset, cacheBuffer, 0, count); CachedBlock block = new CachedBlock(); block.Buffer = cacheBuffer; block.Count = count; block.Offset = offset; block.File = file; cachedBlocks.Add(block); } }