remove obsolete ships
[fleet.git] / misc / obsolete-ships / DeMux.java
diff --git a/misc/obsolete-ships/DeMux.java b/misc/obsolete-ships/DeMux.java
new file mode 100644 (file)
index 0000000..3006dd9
--- /dev/null
@@ -0,0 +1,34 @@
+package edu.berkeley.fleet.interpreter.ships;
+import edu.berkeley.fleet.interpreter.*;
+import edu.berkeley.fleet.*;
+
+import java.util.*;
+import java.io.*;
+
+public class DeMux extends InterpreterShip {
+
+    DataInbox   inp  = new DataInbox(this,  "in");
+    DataInbox   selp = new DataInbox(this,  "select");
+    DataOutbox  truep   = new DataOutbox(this, "true");
+    DataOutbox  falsep   = new DataOutbox(this, "false");
+
+    public String getBalsaName() { return "demux"; }
+
+    public DeMux (Interpreter fleet, String name) {
+        super(fleet, name);
+    }
+
+    public void service() {
+        if (inp.dataReadyForShip() && selp.dataReadyForShip() &&
+            truep.readyForDataFromShip() && falsep.readyForDataFromShip()) {
+            int in = inp.removeDataForShip();
+            int sel = selp.removeDataForShip();
+            if (sel==0)
+                falsep.addDataFromShip(in);
+            else
+                truep.addDataFromShip(in);
+        }
+    }
+
+}
+