lots of changes to Marina test code, mostly for scan chain counters
[fleet.git] / misc / obsolete-ships / DeMux.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 public class DeMux extends InterpreterShip {
9
10     DataInbox   inp  = new DataInbox(this,  "in");
11     DataInbox   selp = new DataInbox(this,  "select");
12     DataOutbox  truep   = new DataOutbox(this, "true");
13     DataOutbox  falsep   = new DataOutbox(this, "false");
14
15     public String getBalsaName() { return "demux"; }
16
17     public DeMux (Interpreter fleet, String name) {
18         super(fleet, name);
19     }
20
21     public void service() {
22         if (inp.dataReadyForShip() && selp.dataReadyForShip() &&
23             truep.readyForDataFromShip() && falsep.readyForDataFromShip()) {
24             int in = inp.removeDataForShip();
25             int sel = selp.removeDataForShip();
26             if (sel==0)
27                 falsep.addDataFromShip(in);
28             else
29                 truep.addDataFromShip(in);
30         }
31     }
32
33 }
34