CmisSync.Lib.Streams.ProgressStream.Seek C# (CSharp) Метод

Seek() публичный Метод

Seek the specified offset and origin.
public Seek ( long offset, SeekOrigin origin ) : long
offset long /// Offset. ///
origin SeekOrigin /// Origin. ///
Результат long
        public override long Seek(long offset, SeekOrigin origin) {
            long result = this.Stream.Seek(offset, origin);
            long pos = this.Stream.Position;
            if (pos != this.position) {
                this.position = pos;
                this.NotifyPropertyChanged(Utils.NameOf(() => this.Position));
            }

            return result;
        }

Usage Example

Пример #1
0
 public void ResumeTest() {
     byte[] inputContent = new byte[100];
     long offset = 100;
     using (var stream = new MemoryStream(inputContent)) 
     using (var offsetstream = new OffsetStream(stream, offset)) {
         using (var progress = new ProgressStream(offsetstream)) {
             progress.PropertyChanged += delegate(object sender, System.ComponentModel.PropertyChangedEventArgs e) {
                 var p = sender as ProgressStream;
                 if (e.PropertyName == Utils.NameOf(() => p.Position)) {
                     this.position = (long)p.Position;
                     this.percent = p.Percent.GetValueOrDefault();
                 }
             };
             progress.Seek(0, SeekOrigin.Begin);
             Assert.AreEqual(offset, this.position);
             Assert.AreEqual(50, this.percent);
             progress.Seek(10, SeekOrigin.Current);
             Assert.AreEqual(offset + 10, this.position);
             progress.Seek(0, SeekOrigin.End);
             Assert.AreEqual(100, this.percent);
             Assert.AreEqual(offset + inputContent.Length, this.position);
             progress.Seek(0, SeekOrigin.Begin);
             progress.WriteByte(0);
             Assert.AreEqual(offset + 1, this.position);
             Assert.AreEqual(50.5, this.percent);
             progress.WriteByte(0);
             Assert.AreEqual(offset + 2, this.position);
             Assert.AreEqual(51, this.percent);
             progress.Write(new byte[10], 0, 10);
             Assert.AreEqual(56, this.percent);
         }
     }
 }
All Usage Examples Of CmisSync.Lib.Streams.ProgressStream::Seek