Ejemplo n.º 1
0
        public override long Seek(long offset, SeekOrigin origin)
        {
            if (!CanSeek)
            {
                throw new NotSupportedException();
            }

            switch (origin)
            {
            case SeekOrigin.Begin:
                position = offset;
                break;

            case SeekOrigin.Current:
                position += offset;
                break;

            case SeekOrigin.End:
                position -= offset;
                break;
            }
            blockIndex   = position / storage.BufferSize;
            streamBuffer = storage.ReadBuffer(blockIndex);
            bufferIndex  = position % storage.BufferSize;
            return(position);
        }