remove obsolete ships
[fleet.git] / misc / obsolete-ships / ScatterShip.java
diff --git a/misc/obsolete-ships/ScatterShip.java b/misc/obsolete-ships/ScatterShip.java
new file mode 100644 (file)
index 0000000..4f6b892
--- /dev/null
@@ -0,0 +1,44 @@
+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;
+    }
+
+}