//private: void Connect() { const int BUFFER_SIZE = 4096; if (m_dpCount == 0) { bool connected = false; try { m_dataFile = new System.IO.FileStream(FilePath, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, System.IO.FileShare.Read, BUFFER_SIZE, System.IO.FileOptions.RandomAccess); Reader = new SeekableReader(m_dataFile); Writer = new SeekableWriter(m_dataFile); Header.Read(Reader); Init(); connected = true; } catch (System.IO.FileNotFoundException) { System.Diagnostics.Debug.WriteLine("Try to create the file {0}.", FilePath); m_dataFile = new System.IO.FileStream(FilePath, System.IO.FileMode.CreateNew, System.IO.FileAccess.ReadWrite, System.IO.FileShare.Read, BUFFER_SIZE, System.IO.FileOptions.RandomAccess); Header.Reset(); Header.CreationTime = DateTime.Now; Writer = new SeekableWriter(m_dataFile); Reader = new SeekableReader(m_dataFile); Header.Write(Writer); Init(); connected = true; } finally { if (!connected) { m_dataFile?.Dispose(); m_dataFile = null; Reader = null; Writer = null; } } } ++m_dpCount; Assert(IsConnected); }
public FramedTable(uint id, string filePath) : //nothrow base(id, filePath) { m_header = new TableHeader(); m_wrBuffer = new byte[DatumSize]; var ms = new MemoryStream(m_wrBuffer); m_buffWriter = new SeekableWriter(ms); }