add Packet.toString()
[fleet.git] / src / edu / berkeley / fleet / interpreter / Packet.java
index d26b894..d1c292f 100644 (file)
@@ -1,5 +1,6 @@
 package edu.berkeley.fleet.interpreter;
 import edu.berkeley.fleet.api.*;
+import edu.berkeley.sbp.util.ANSI;
 
 class Packet {
 
@@ -39,4 +40,27 @@ class Packet {
         return isToken;
     }
 
+    public String toString() {
+        Packet p = this;
+        BitVector data = p.getValue();
+        Dock source = p.getSource();
+        Destination dest = p.getDestination();
+        if (dest.getDock().getInstructionDestination()==dest) {
+            if (p.isToken()) {
+                return (ANSI.yellow(ANSI.bold(" torpedo: ")) + (source + " -> " + ANSI.yellow(ANSI.bold(dest+""))));
+            } else {
+                Instruction d = source.getShip().getFleet().decodeInstruction(data, source);
+                return (ANSI.red("dispatch: " + d));
+            }
+        } else {
+            if (p.isToken()) {
+                return (ANSI.blue(ANSI.bold("   token: ")) + (source + " -> " + ANSI.blue(ANSI.bold(dest+""))));
+            } else {
+                return (ANSI.cyan("    data: "+data) +
+                               (source==null ? "" :
+                                (" : " + source))+(" -> "+ANSI.cyan(""+dest)));
+            }
+        }
+    }
+
 }