MoltenMercury/libWyvernzora/IO/ExStreams/ExPartStream.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace libWyvernzora.IO
{
    public class ExPartStream : ExStreamBase
    {
        //Operational Variables
        protected ExStreamBase _baseStream;
        protected Int64 _startPosition = 0;
        protected Int64 _length = 0;
        protected Int64 _position = 0;
        protected FileAccess _access = FileAccess.ReadWrite;

        //Constructors
        public ExPartStream(ExStreamBase b, Int64 start, Int64 len, FileAccess ac = FileAccess.ReadWrite)
        {
            if (len < 0) { throw new ArgumentOutOfRangeException(); }
            if (start < 0) { throw new ArgumentOutOfRangeException(); }
            _baseStream = b;
            _startPosition = start;
            _length = len;
            _access = ac;
        }
        public ExPartStream(ExStreamBase b, Range rng, FileAccess ac= FileAccess.ReadWrite)
        {
            _baseStream = b;
            _startPosition = rng.Lower;
            _length = rng.Higher - rng.Lower;
            _access = ac;
        }

        //Position management support
        protected void RefreshPosition()
        {
            //no validation logic, everything's done on site
            _baseStream.Position = _startPosition + _position;
        }

        #region System.IO.Stream Members
        public override bool CanRead
        {
            get { return _baseStream.CanRead; }
        }
        public override bool CanSeek
        {
            get { return _baseStream.CanSeek; }
        }
        public override bool CanWrite
        {
            get { return _baseStream.CanWrite; }
        }
        public override void Flush()
        {
            _baseStream.Flush();
        }
        public override long Length
        {
后面还有 78 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。