/// <exception cref="System.IO.IOException"/> public override int Read(long position, byte[] b, int off, int len) { // parameter check if ((off | len | (off + len) | (b.Length - (off + len))) < 0) { throw new IndexOutOfRangeException(); } else { if (len == 0) { return(0); } } if (position < 0) { throw new ArgumentException("Parameter position can not to be negative"); } ChecksumFileSystem.ChecksumFSInputChecker checker = new ChecksumFileSystem.ChecksumFSInputChecker (fs, file); checker.Seek(position); int nread = checker.Read(b, off, len); checker.Close(); return(nread); }
/// <summary>Opens an FSDataInputStream at the indicated Path.</summary> /// <param name="f">the file name to open</param> /// <param name="bufferSize">the size of the buffer to be used.</param> /// <exception cref="System.IO.IOException"/> public override FSDataInputStream Open(Path f, int bufferSize) { FileSystem fs; InputStream @in; if (verifyChecksum) { fs = this; @in = new ChecksumFileSystem.ChecksumFSInputChecker(this, f, bufferSize); } else { fs = GetRawFileSystem(); @in = fs.Open(f, bufferSize); } return(new ChecksumFileSystem.FSDataBoundedInputStream(fs, f, @in)); }