2ab6fc4c8b8a8a1129a70d4872c3a7ff4998b102
[fleet.git] / src / edu / berkeley / fleet / interpreter / DebugDock.java
1 package edu.berkeley.fleet.interpreter;
2 import java.util.*;
3 import edu.berkeley.fleet.two.*;
4 import edu.berkeley.fleet.api.*;
5 import edu.berkeley.fleet.api.Instruction;
6 import static edu.berkeley.fleet.api.Predicate.*;
7
8 /** EXPERIMENTAL -- DO NOT RELY ON THIS INTERFACE */
9 public class DebugDock {
10     final InterpreterDock dock;
11
12     public DebugDock(Dock d) {
13         dock = (InterpreterDock)d;
14     }
15
16     public Dock getDock()                       { return dock; }
17     public int getOLC()                         { return dock.olc; }
18     public int getILC()                         { return dock.ilc; }
19     public Instruction getExecuting()           { return dock.instructions.peek(); }
20     public Queue<Instruction> getInstructions() { return dock.instructions; }
21     public boolean getDataReadyForShip()        { return dock.dataReadyForShip; }
22     public boolean getReadyForDataFromShip()    { return dock.readyForDataFromShip;}
23     public long getDataFromShip()               { return dock.dataFromShip; }
24     public boolean getTorpedoWaiting()          { return dock.torpedoWaiting; }
25     public boolean isHatchOpen()                { return !dock.requeueStageInCirculatingState; }
26     public boolean getFlagA()                   { return dock.flag_a; }
27     public boolean getFlagB()                   { return dock.flag_b; }
28     public boolean getFlagC()                   { return dock.flag_c; }
29     public BitVector getDataLatch()             { return dock.dataLatch; }
30     public Queue<BitVector> getDataDestPackets() {
31         Queue<BitVector> values = new LinkedList<BitVector>();
32         for (Packet p : dock.dataPackets)
33             if (!p.isToken())
34                 values.add(p.getValue());
35         return values;
36     }
37     public Queue<Instruction> getEpilogue() {
38         throw new RuntimeException("this method has been removed");
39     }
40     public Queue<Instruction> getInstructionsInFabric() {
41         throw new RuntimeException("this method has been removed");
42     }
43 }