예제 #1
0
 public Stream Read(int stride = 1)
 {
     com.IStream comStream;
     FRawIn.GetData(Position, out comStream);
     Position += stride;
     if (comStream != null)
     {
         var stream = comStream as Stream;
         if (stream != null)
         {
             return(stream);
         }
         return(new ComAdapterStream(comStream));
     }
     return(EmptyComStream.Instance);
 }
예제 #2
0
        public override bool Sync()
        {
            var isChanged = IsChanged = FRawIn.PinIsChanged;

            if (isChanged)
            {
                var length = Length = FRawIn.SliceCount;
                for (int i = 0; i < length; i++)
                {
                    com.IStream comStream;
                    FRawIn.GetData(i, out comStream);
                    this[i] = ResourceProvider.Return(Wrap(comStream)).ShareSerially().Do(s =>
                    {
                        if (s.CanSeek)
                        {
                            s.Position = 0;
                        }
                    });
                }
            }
            return(isChanged);
        }