KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > polepos > teams > db4o > SepangDb4o


1 /*
2 This file is part of the PolePosition database benchmark
3 http://www.polepos.org
4
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public
16 License along with this program; if not, write to the Free
17 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
18 MA 02111-1307, USA. */

19
20 package org.polepos.teams.db4o;
21
22 import org.polepos.circuits.sepang.*;
23
24 /**
25  * @author Herkules
26  */

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