added fleet api classes
[fleet.git] / src / edu / berkeley / fleet / ships / Adder.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 /**
9  * @author Adam Megacz <megacz@cs.berkeley.edu>
10  */
11 public class Adder extends InterpreterShip {
12
13     private int link;
14
15     DataInbox a = new DataInbox(this, "a");
16     DataInbox b = new DataInbox(this, "b");
17     DataOutbox out = new DataOutbox(this, "out");
18
19     public String getBalsaName() { return "adder"; }
20
21     public Adder(Interpreter fleet, String name) {
22         super(fleet, name);
23     }
24
25     public void service() {
26         if (!out.readyForDataFromShip()) return;
27         if (!a.dataReadyForShip()) return;
28         if (!b.dataReadyForShip()) return;
29
30         int inA = a.removeDataForShip();
31         int inB = b.removeDataForShip();
32         int result = inA + inB;
33
34         out.addDataFromShip(result);
35     }
36 }