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