add MarinaDestination
authorAdam Megacz <adam@megacz.com>
Thu, 16 Jul 2009 18:29:58 +0000 (11:29 -0700)
committerAdam Megacz <adam@megacz.com>
Thu, 16 Jul 2009 18:29:58 +0000 (11:29 -0700)
src/edu/berkeley/fleet/marina/MarinaDestination.java [new file with mode: 0644]
src/edu/berkeley/fleet/marina/MarinaPath.java

diff --git a/src/edu/berkeley/fleet/marina/MarinaDestination.java b/src/edu/berkeley/fleet/marina/MarinaDestination.java
new file mode 100644 (file)
index 0000000..8e1d032
--- /dev/null
@@ -0,0 +1,22 @@
+package edu.berkeley.fleet.marina;
+import edu.berkeley.fleet.api.*;
+import edu.berkeley.fleet.two.*;
+
+public class MarinaDestination extends Destination {
+
+    private final BitVector bv;
+    private final MarinaFleet marina;
+
+    public MarinaDestination(MarinaFleet marina, BitVector bv) {
+        super(marina.onlyDock);
+        this.marina = marina;
+        bv.setImmutable();
+        this.bv = bv;
+    }
+
+    public String toString() {
+        return bv.toString();
+    }
+
+}
+
index 0c9ba58..84cb47f 100644 (file)
@@ -4,6 +4,8 @@ import edu.berkeley.fleet.two.*;
 
 public class MarinaPath extends FleetTwoPath {
 
+    public static final int SIGNAL_BIT_INDEX = 13;
+
     private final MarinaFleet marina;
     final BitVector bv;
 
@@ -16,12 +18,19 @@ public class MarinaPath extends FleetTwoPath {
     public String toString() { return "MarinaPath("+bv+")"; }
 
     public BitVector getSignal() {
-        throw new RuntimeException("not implemented");
+        BitVector ret = new BitVector(1);
+        ret.set(0, bv.get(SIGNAL_BIT_INDEX));
+        return ret;
     }
     
     public Dock getSource() { return marina.onlyDock; }
     public Destination getDestination() {
-        throw new RuntimeException("not implemented");
+        BitVector bvd = new BitVector(bv.length()-1);
+        int j=0;
+        for(int i=0; i<bv.length(); i++)
+            if (i!=SIGNAL_BIT_INDEX)
+                bvd.set(j++, bv.get(i));
+        return new MarinaDestination(marina, bvd);
     }
     public int getBufferingAmount() { return 1; }
     public int getLatencyMetric() { return 0; }