merge MarinaFleet and Marina
[fleet.git] / src / edu / berkeley / fleet / marina / MarinaPath.java
1 package edu.berkeley.fleet.marina;
2 import edu.berkeley.fleet.api.*;
3 import edu.berkeley.fleet.two.*;
4
5 public class MarinaPath extends FleetTwoPath {
6
7     public static final int SIGNAL_BIT_INDEX = 13;
8
9     private final Marina marina;
10     final BitVector bv;
11
12     public MarinaPath(Marina marina, BitVector bv) {
13         this.marina = marina;
14         this.bv = bv;
15         bv.setImmutable();
16     }
17
18     public String toString() { return "MarinaPath("+bv+")"; }
19
20     public BitVector getSignal() {
21         BitVector ret = new BitVector(1);
22         ret.set(0, bv.get(SIGNAL_BIT_INDEX));
23         return ret;
24     }
25     
26     public Dock getSource() { return marina.onlyDock; }
27     public Destination getDestination() {
28         BitVector bvd = new BitVector(bv.length()-1);
29         int j=0;
30         for(int i=0; i<bv.length(); i++)
31             if (i!=SIGNAL_BIT_INDEX)
32                 bvd.set(j++, bv.get(i));
33         return new MarinaDestination(marina, bvd);
34     }
35     public int getBufferingAmount() { return 1; }
36     public int getLatencyMetric() { return 0; }
37
38 }
39