Bend.OffsetStream.Seek C# (CSharp) Метод

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

public Seek ( long offset, SeekOrigin origin ) : long
offset long
origin SeekOrigin
Результат long
        public override long Seek(long offset, SeekOrigin origin)
        {
            long new_offset = ostream.Position + offset; // SeekOrigin.Current

            switch (origin) {
                case SeekOrigin.Begin:
                    new_offset = os_offset + offset;
                    goto case SeekOrigin.Current;
                case SeekOrigin.End:
                    new_offset = os_offset + os_length + offset;
                    goto case SeekOrigin.Current;
                case SeekOrigin.Current:
                    if ((new_offset < os_offset) || (new_offset >= (os_offset + os_length))) {
                        throw new Exception(
                            "OffsetStream.Seek() outside offset stream limits" +
                            String.Format(", parms({0},{1})",offset,origin.ToString()) +
                            String.Format(", new_offset({0}) os_offset({1}) os_length({2})", new_offset, os_offset,os_length));
                    }
                    return ostream.Seek(new_offset, SeekOrigin.Begin) - os_offset;
                default:
                    throw new Exception("unknown SeekOrigin value" + origin.ToString());
            }
        }