--- /dev/null
+package edu.berkeley.fleet.interpreter.ships;
+import edu.berkeley.fleet.interpreter.*;
+import edu.berkeley.fleet.*;
+
+import java.util.*;
+import java.io.*;
+
+/**
+ * @author Dominic Antonelli <dantonel@berkeley.edu>
+ */
+public class ScatterShip extends InterpreterShip {
+
+ DataInbox in = new DataInbox(this, "in");
+ Vector<DataOutbox> out = new Vector<DataOutbox>();
+
+ private int size = 2;
+ private int state = 0;
+
+ public ScatterShip(Interpreter fleet, String name) {
+ super(fleet, name);
+ init();
+ }
+
+ private boolean initialized = false;
+ private void init() {
+ for (int i = 0; i < size; i++) {
+ out.add(new DataOutbox(this, "out" + i));
+ }
+ initialized = true;
+ }
+
+ public void service() {
+ if (!initialized) init();
+ if (in.dataReadyForShip() && out.get(state).readyForDataFromShip()) {
+ out.get(state).addDataFromShip(in.removeDataForShip());
+ state = (state + 1) % size;
+ }
+ }
+
+ public int resolveShipSpecificConstant(String shipSpecificData) {
+ return 0;
+ }
+
+}