From ebc9f0da9e0d2fe90a4f9a820114d462fdf13178 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Wed, 8 Jan 2014 08:06:17 -0700 Subject: Basic types. --- page.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 page.go (limited to 'page.go') diff --git a/page.go b/page.go new file mode 100644 index 0000000..3f1e6b3 --- /dev/null +++ b/page.go @@ -0,0 +1,44 @@ +package bolt + +import ( + "unsafe" +) + +const MinPageKeys = 2 +const FillThreshold = 250 // 25% + +const ( + BranchPage = 0x01 + LeafPage = 0x02 + OverflowPage = 0x04 + MetaPage = 0x08 + DirtyPage = 0x10 /**< dirty page, also set for #P_SUBP pages */ + SubPage = 0x40 + KeepPage = 0x8000 /**< leave this page alone during spill */ +) + +type page struct { + header struct { + id int + next *page // (?) + lower int + upper int + overflowPageCount int + } + metadata []byte +} + +// nodeCount returns the number of nodes on the page. +func (p *page) nodeCount() int { + return 0 // (p.header.lower - unsafe.Sizeof(p.header) >> 1 +} + +// remainingSize returns the number of bytes left in the page. +func (p *page) remainingSize() int { + return p.header.upper - p.header.lower +} + +// remainingSize returns the number of bytes left in the page. +func (p *page) remainingSize() int { + return p.header.upper - p.header.lower +} -- cgit v1.2.3