package net.onrc.onos.core.intent;

/**
 * @author Toshio Koide (t-koide@onlab.us)
 */
public class ConstrainedShortestPathIntent extends ShortestPathIntent {
    protected double bandwidth;

    /**
     * Default constructor for Kryo deserialization.
     */
    protected ConstrainedShortestPathIntent() {
    }

    public ConstrainedShortestPathIntent(String id,
                                         long srcSwitch, long srcPort, long srcMac,
                                         long dstSwitch, long dstPort, long dstMac,
                                         double bandwidth) {
        super(id, srcSwitch, srcPort, srcMac, dstSwitch, dstPort, dstMac);
        this.bandwidth = bandwidth;
    }

    public double getBandwidth() {
        return bandwidth;
    }
}
