Exemple #1
0
        public MGIndex(string path, string filename, byte keysize, bool allowdups)
        {
            _AllowDuplicates = allowdups;
            _index           = new IndexFile <T>(Path.Combine(path, filename), keysize);
            // load page list
            _index.GetPageList(_pageListDiskPages, _pageList, out _LastIndexedRecordNumber);
            if (_pageList.Count == 0)
            {
                Page <T> page = new Page <T>();
                page.FirstKey = (T)RDBDataType <T> .GetEmpty();

                page.DiskPageNumber = _index.GetNewPageNumber();
                page.isDirty        = true;
                _pageList.Add(page.FirstKey, new PageInfo(page.DiskPageNumber, 0, 0));
                _cache.Add(page.DiskPageNumber, page);
            }
        }