Ejemplo n.º 1
0
        public override void Write(TorrentFile file, long offset, byte[] buffer, int bufferOffset, int count)
        {
            Check.File(file);
            Check.Buffer(buffer);

            if (offset < 0 || offset + count > file.Length)
            {
                throw new ArgumentOutOfRangeException("offset");
            }

            TorrentFileStream stream = GetStream(file, FileAccess.ReadWrite);

            stream.Seek(offset, SeekOrigin.Begin);
            stream.Write(buffer, bufferOffset, count);
        }
Ejemplo n.º 2
0
        public override void Write(TorrentFile file, long offset, byte[] buffer, int bufferOffset, int count)
        {
            Check.File(file);
            Check.Buffer(buffer);

            if (offset < 0 || offset + count > file.Length)
            {
                throw new ArgumentOutOfRangeException("offset");
            }

            TorrentFileStream stream = GetStream(file, FileAccess.ReadWrite);

            _stopwatch.Reset();
            _stopwatch.Start();

            stream.Seek(offset, SeekOrigin.Begin);
            stream.Write(buffer, bufferOffset, count);

            if (_stopwatch.ElapsedMilliseconds > 1000)
            {
                Logger.Log(null, "Slow write time: {0}ms pos: {1} len: {2}", _stopwatch.ElapsedMilliseconds, offset, count);
            }
        }