1 package edu.berkeley.fleet.ships;
2 import edu.berkeley.fleet.*;
7 public class CounterShip extends Ship {
11 DataInbox load = new DataInbox(this, "load");
12 TokenInbox decrement = new TokenInbox(this, "decrement");
13 TokenOutbox zero = new TokenOutbox(this, "zero");
15 public CounterShip(Fleet fleet, String name) {
19 public String getBalsaName() { return "counter"; }
20 public void service() {
21 if (!zero.readyForTokenFromShip()) return;
22 if (count==0 && load.dataReadyForShip()) {
23 count = load.removeDataForShip();
26 if (count>0 && decrement.tokenReadyForShip()) {
27 decrement.removeTokenForShip();
30 zero.addTokenFromShip();