package edu.usc.enl.dynamicmeasurement.algorithms.tasks.multitask.singleswitch.resourceallocation.dream.drop; import edu.usc.enl.dynamicmeasurement.algorithms.tasks.multitask.singleswitch.resourceallocation.PriorityDropPolicy; import edu.usc.enl.dynamicmeasurement.algorithms.tasks.multitask.singleswitch.resourceallocation.dream.DreamTaskRecord; import edu.usc.enl.dynamicmeasurement.algorithms.tasks.multitask.singleswitch.resourceallocation.dream.DummyTaskRecord; import edu.usc.enl.dynamicmeasurement.algorithms.tasks.multitask.singleswitch.resourceallocation.dream.ThresholdGuaranteeAlgorithm2; import java.util.Collection; /** * Created with IntelliJ IDEA. * User: masoud * Date: 9/24/13 * Time: 6:57 PM */ public class NoMinResourceGiveDrop extends DropFlagRaiser { public NoMinResourceGiveDrop(ThresholdGuaranteeAlgorithm2 algorithm1, PriorityDropPolicy dropPolicy1) { super(algorithm1, dropPolicy1); } @Override public boolean raise2(Collection<DreamTaskRecord> poorTaskRecords, Collection<DreamTaskRecord> richTaskRecords, DummyTaskRecord dummyTaskRecord) { int sumGive = dummyTaskRecord.getTask().getResourceShare(); for (DreamTaskRecord richTaskRecord : richTaskRecords) { sumGive += richTaskRecord.getReductionStep2(); } return sumGive < poorTaskRecords.size() * algorithm.getMinResource(); } }