1 19 20 package org.polepos.teams.db4o; 21 22 import org.polepos.circuits.sepang.*; 23 24 27 public class SepangDb4o extends Db4oDriver implements SepangDriver{ 28 29 long treeRootID; 30 Tree lastRead; 31 32 public void write(){ 33 begin(); 34 Tree tree = Tree.createTree(setup().getTreeDepth()); 35 store(tree); 36 treeRootID = db().getID(tree); 37 commit(); 38 } 39 40 public void read(){ 41 lastRead = readAndActivate(); 42 Tree.traverse(lastRead, new TreeVisitor() { 43 public void visit(Tree tree) { 44 addToCheckSum(tree.getDepth()); 45 } 46 }); 47 } 48 49 public void read_hot() { 50 read(); 51 } 52 53 public void delete() { 54 begin(); 55 Tree tree = readAndActivate(); 56 Tree.traverse(tree, new TreeVisitor() { 57 public void visit(Tree tree) { 58 db().delete(tree); 59 } 60 }); 61 commit(); 62 } 63 64 private Tree readAndActivate(){ 65 Tree tree = (Tree)db().getByID(treeRootID); 66 db().activate(tree, Integer.MAX_VALUE); 67 return tree; 68 } 69 } 70 | Popular Tags |