01: /*
02: This file is part of the PolePosition database benchmark
03: http://www.polepos.org
04:
05: This program is free software; you can redistribute it and/or
06: modify it under the terms of the GNU General Public License
07: as published by the Free Software Foundation; either version 2
08: of the License, or (at your option) any later version.
09:
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.framework;
21:
22: /**
23: * an implementation of a circuit for a team
24: *
25: * @author Herkules
26: */
27: public abstract class Driver {
28:
29: private Car mCar;
30:
31: private TurnSetup mSetup;
32:
33: private long mCheckSum;
34:
35: public Car car() {
36: return mCar;
37: }
38:
39: /**
40: * take a seat in a car.
41: */
42: public void takeSeatIn(Car car, TurnSetup setup)
43: throws CarMotorFailureException {
44: mCar = car;
45: mSetup = setup;
46: mCheckSum = 0;
47: }
48:
49: /**
50: * Called just before one of the specific benchmark calls are issued.
51: * Normally opens the database.
52: */
53: public abstract void prepare() throws CarMotorFailureException;
54:
55: /**
56: * Called after the lap so that the driver can clean up any files it
57: * created and close any resources it opened.
58: */
59: public abstract void backToPit();
60:
61: public TurnSetup setup() {
62: return mSetup;
63: }
64:
65: /**
66: * Collecting a checksum to make sure every team does a complete job
67: */
68: public void addToCheckSum(long l) {
69: mCheckSum += l;
70: }
71:
72: public long checkSum() {
73: return mCheckSum;
74: }
75:
76: }
|