예제 #1
0
파일: btreepq.go 프로젝트: keep94/scotty
func first(target *btree.BTree) (result btree.Item) {
	target.Ascend(func(i btree.Item) bool {
		result = i
		return false
	})
	return
}
예제 #2
0
파일: btreepq.go 프로젝트: keep94/scotty
func (p *PageQueue) moveFromTo(pg Page, from, to *btree.BTree) {
	pageToMove := from.Delete(pg)
	if pageToMove == nil {
		// If we can't find our page in the from list,
		// we have to assume it is in the to list already.
		return
	}
	if pageToMove != pg {
		panic("Unrecongized page passed to ReclaimHigh or ReclaimLow")
	}
	insert(to, pageToMove)
}
예제 #3
0
파일: btreepq.go 프로젝트: keep94/scotty
func insert(target *btree.BTree, item btree.Item) {
	if target.ReplaceOrInsert(item) != nil {
		panic("Insert failed. item already exists")
	}
}