lots of changes to Marina test code, mostly for scan chain counters
[fleet.git] / misc / obsolete-ships / ScatterShip.java
1 package edu.berkeley.fleet.interpreter.ships;
2 import edu.berkeley.fleet.interpreter.*;
3 import edu.berkeley.fleet.*;
4
5 import java.util.*;
6 import java.io.*;
7
8 /**
9  * @author Dominic Antonelli <dantonel@berkeley.edu>
10  */
11 public class ScatterShip extends InterpreterShip {
12
13     DataInbox   in  = new DataInbox(this, "in");
14     Vector<DataOutbox> out = new Vector<DataOutbox>();
15
16     private int size = 2;
17     private int state = 0;
18
19     public ScatterShip(Interpreter fleet, String name) {
20         super(fleet, name);
21         init();
22     }
23
24     private boolean initialized = false;
25     private void init() {
26         for (int i = 0; i < size; i++) {
27             out.add(new DataOutbox(this, "out" + i));
28         }
29         initialized = true;
30     }
31
32     public void service() {
33         if (!initialized) init();
34         if (in.dataReadyForShip() && out.get(state).readyForDataFromShip()) {
35             out.get(state).addDataFromShip(in.removeDataForShip());
36             state = (state + 1) % size;
37         }
38     }
39
40     public int resolveShipSpecificConstant(String shipSpecificData) {
41         return 0;
42     }
43
44 }