package be.iminds.ilabt.jfed.rspec.model;

/**
 * LinkSetting
 */
public interface LinkSetting {
    RspecInterface getFromIface();

    RspecInterface getToIface();

    long getCapacity_Kbps();

    void setCapacity_Kbps(Long value);

    boolean isCapacitySet();

    int getLatency_ms();

    void setLatency_ms(Integer value);

    boolean isLatencySet();

    double getPacketLoss();

    void setPacketLoss(Double value);

    boolean isPacketLossSet();

    boolean isActive();

    /**
     * whether or not to add this to the Rspec if no link settings are specified
     *
     * RSpecs created from the GUI will set this to false.
     * When reading an RSpecs from XML, this is set to true for empty properties. (to help reconstruct them exactly as the original)
     * */
    boolean isShownIfNotActive();
    void setShownIfNotActive(boolean shownIfNotActive);

    void setSameAs(LinkSetting linkSetting);
}
