Example #1
0
            /// <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);
            }
Example #2
0
        /// <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));
        }