Пример #1
0
        public MemoryMapPager(string file, FlushMode flushMode = FlushMode.Full)
        {
            _flushMode = flushMode;

            var fileInfo = new FileInfo(file);
            var hasData  = fileInfo.Exists == false || fileInfo.Length == 0;

            _fileStream = fileInfo.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);
            if (hasData)
            {
                NumberOfAllocatedPages = 0;
            }
            else
            {
                NumberOfAllocatedPages = fileInfo.Length / PageSize;
                PagerState.Release();
                PagerState = CreateNewPagerState();
            }
        }
Пример #2
0
 public override void Dispose()
 {
     base.Dispose();
     PagerState.Release();
     _base = null;
 }