From 26f6fefeadf1b3e38b86a0a12ba8d1cbb7f347d3 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Thu, 30 Jan 2014 18:22:02 -0500 Subject: Add RWTransaction.write(). --- meta.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'meta.go') diff --git a/meta.go b/meta.go index f3bc4b6..659bfa7 100644 --- a/meta.go +++ b/meta.go @@ -14,8 +14,8 @@ type meta struct { pageSize uint32 pgid pgid free pgid + sys pgid txnid txnid - sys bucket } // validate checks the marker bytes and version of the meta page to ensure it matches this binary. @@ -30,8 +30,20 @@ func (m *meta) validate() error { // copy copies one meta object to another. func (m *meta) copy(dest *meta) { + dest.magic = m.magic + dest.version = m.version dest.pageSize = m.pageSize dest.pgid = m.pgid + dest.free = m.free dest.txnid = m.txnid dest.sys = m.sys } + +// write writes the meta onto a page. +func (m *meta) write(p *page) { + // Page id is either going to be 0 or 1 which we can determine by the Txn ID. + p.id = pgid(m.txnid % 2) + p.flags |= p_meta + + m.copy(p.meta()) +} -- cgit v1.2.3