X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=misc%2Fobsolete-ships%2FDeMux.java;fp=misc%2Fobsolete-ships%2FDeMux.java;h=3006dd92d1a24605d73f9f4bdaefa677c565f519;hb=7f069df557c5e1a2eb5b91e2d018409fab670c43;hp=0000000000000000000000000000000000000000;hpb=85d968586dd487cc74f2a19d9019fff31c79725d;p=fleet.git diff --git a/misc/obsolete-ships/DeMux.java b/misc/obsolete-ships/DeMux.java new file mode 100644 index 0000000..3006dd9 --- /dev/null +++ b/misc/obsolete-ships/DeMux.java @@ -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); + } + } + +} +