/*---------------------------------------------------------------------------- * %%Function: BufferedStreamEx * %%Qualified: TCore.StreamEx.BufferedStreamEx.BufferedStreamEx * %%Contact: rlittle * * ----------------------------------------------------------------------------*/ public BufferedStreamEx(Stream stm, long ibFileStart, long ibFileLim, long cbSwapBuffer = 1024) { m_stm = stm; m_ibFileStart = ibFileStart; m_ibFileLim = ibFileLim; m_stm.Seek(m_ibFileStart, SeekOrigin.Begin); m_bufferMain = new SwapBuffer(m_stm, ibFileLim, cbSwapBuffer); m_bufferSwap = new SwapBuffer(m_stm, ibFileLim, cbSwapBuffer); }
/*---------------------------------------------------------------------------- * %%Function: BufferedStreamEx * %%Qualified: TCore.SreamFix.BufferedStreamEx * %%Contact: rlittle * * Create a new BufferedStreamEx, noting the starting offset and the offset * lim we can read to. * * The file is opened Read only, allowing ReadWrite share opening (to allow * the other thread to open the file read/write) * ----------------------------------------------------------------------------*/ public BufferedStreamEx(string sFilename, long ibFileStart, long ibFileLim) { FileStream m_fs = new FileStream(sFilename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); m_stm = m_fs; m_ibFileStart = ibFileStart; m_ibFileLim = ibFileLim; m_stm.Seek(m_ibFileStart, SeekOrigin.Begin); m_bufferMain = new SwapBuffer(m_stm, ibFileLim); m_bufferSwap = new SwapBuffer(m_stm, ibFileLim); }