added fleet api classes
[fleet.git] / src / edu / berkeley / fleet / ships / Fifo.java
1 package edu.berkeley.fleet.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 Fifo extends InterpreterShip {
9
10     DataInbox   in  = new DataInbox(this, "in");
11     DataOutbox  out = new DataOutbox(this, "out");
12
13     public String getBalsaName() { return "fifo"; }
14
15     private Queue<Integer> fifo = new LinkedList<Integer>();
16
17     public Fifo(Interpreter fleet, String name) {
18         super(fleet, name);
19     }
20
21     public void service() {
22         if (in.dataReadyForShip()) {
23             fifo.add(in.removeDataForShip());
24             //Log.println(name + ": fifo occupancy is now " + fifo.size() + " items");
25         }
26         if (out.readyForDataFromShip() && fifo.size() > 0) {
27             out.addDataFromShip(fifo.remove());
28             //Log.println(name + ": fifo occupancy is now " + fifo.size() + " items");
29         }
30     }
31
32 }