| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 | /* * EliasDB * * Copyright 2016 Matthias Ladkau. All rights reserved. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */package pageviewimport (	"devt.de/krotik/eliasdb/storage/file"	"devt.de/krotik/eliasdb/storage/paging/view"	"devt.de/krotik/eliasdb/storage/util")/*SlotInfoPage data structure*/type SlotInfoPage struct {	*view.PageView}/*NewSlotInfoPage creates a new SlotInfoPage object which can manage slotinfos.*/func NewSlotInfoPage(record *file.Record) *SlotInfoPage {	pv := view.GetPageView(record)	return &SlotInfoPage{pv}}/*SlotInfoRecord gets record id of a stored slotinfo.*/func (lm *SlotInfoPage) SlotInfoRecord(offset uint16) uint64 {	return util.LocationRecord(lm.Record.ReadUInt64(int(offset)))}/*SlotInfoOffset gets the record offset of a stored slotinfo.*/func (lm *SlotInfoPage) SlotInfoOffset(offset uint16) uint16 {	return util.LocationOffset(lm.Record.ReadUInt64(int(offset)))}/*SetSlotInfo stores a slotinfo on the pageview's record.*/func (lm *SlotInfoPage) SetSlotInfo(slotinfoOffset uint16, recordID uint64, offset uint16) {	lm.Record.WriteUInt64(int(slotinfoOffset), util.PackLocation(recordID, offset))}
 |