1 package edu.berkeley.fleet.interpreter.ships;
2 import edu.berkeley.fleet.interpreter.*;
3 import edu.berkeley.fleet.*;
8 public class HomeworkCounter extends InterpreterShip {
10 private int count = -1;
12 TokenOutbox zero = new TokenOutbox(this, "zero");
13 TokenOutbox positive = new TokenOutbox(this, "positive");
14 DataInbox load = new DataInbox(this, "load");
15 TokenInbox ask = new TokenInbox(this, "ask");
17 public HomeworkCounter(Interpreter fleet, String name) {
21 public void service() {
22 if (!zero.readyForTokenFromShip()) return;
23 if (!positive.readyForTokenFromShip()) return;
24 if (load.dataReadyForShip()) {
25 count = load.removeDataForShip();
28 if (ask.tokenReadyForShip()) {
29 ask.removeTokenForShip();
32 positive.addTokenFromShip();
33 } else if (count<=0) {
34 zero.addTokenFromShip();