internal TreePage NewPage(TreePageFlags flags, int num) { var page = AllocateNewPage(_llt, flags, num); State.RecordNewPage(page, num); PageModified?.Invoke(page.PageNumber); return(page); }
private static TreePage AllocateNewPage(LowLevelTransaction tx, TreePageFlags flags, int num, long?pageNumber = null) { var page = tx.AllocatePage(num, pageNumber).ToTreePage(); page.Flags = PageFlags.VariableSizeTreePage | (num == 1 ? PageFlags.Single : PageFlags.Overflow); page.Lower = (ushort)Constants.TreePageHeaderSize; page.TreeFlags = flags; page.Upper = (ushort)page.PageSize; page.Dirty = true; return(page); }
internal TreePage NewPage(TreePageFlags flags, long nearbyPage) { var newPage = _newPageAllocator?.AllocateSinglePage(nearbyPage) ?? _llt.AllocatePage(1); var page = PrepareTreePage(flags, 1, newPage); State.RecordNewPage(page, 1); PageModified?.Invoke(page.PageNumber, page.Flags); return(page); }
private static TreePage PrepareTreePage(TreePageFlags flags, int num, Page newPage) { var page = new TreePage(newPage.Pointer, Constants.Storage.PageSize) { Flags = PageFlags.VariableSizeTreePage | (num == 1 ? PageFlags.Single : PageFlags.Overflow), Lower = Constants.Tree.PageHeaderSize, TreeFlags = flags, Upper = Constants.Storage.PageSize, Dirty = true }; return(page); }
private static TreePage AllocateNewPage(LowLevelTransaction tx, TreePageFlags flags, int num, long?pageNumber = null) { var newPage = tx.AllocatePage(num, pageNumber); var page = new TreePage(newPage.Pointer, tx.PageSize) { Flags = PageFlags.VariableSizeTreePage | (num == 1 ? PageFlags.Single : PageFlags.Overflow), Lower = (ushort)Constants.Tree.PageHeaderSize, TreeFlags = flags, Upper = (ushort)tx.PageSize, Dirty = true }; return(page); }