package gipad.plan.choco.constraints;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import solver.constraints.Constraint;
import solver.variables.IntVar;
import gipad.configuration.configuration.Node;
import gipad.plan.choco.DefaultReconfigurationProblem;
import gipad.plan.choco.ReconfigurationProblem;
import gipad.plan.choco.actionmodel.VirtualMachineActionModel;
import gipad.plan.choco.actionmodel.slice.DemandingSlice;
import gipad.plan.choco.actionmodel.slice.Slice;
public class SatisfyDemandingSliceHeights{
public SatisfyDemandingSliceHeights(DefaultReconfigurationProblem rp) {
List<VirtualMachineActionModel> vmActions = rp.getVirtualMachineActions();
Node[] pm=rp.getNodes();
//Consuming et leaving sur le noeud
//Collections.sort(dSlices, new SliceComparator(false, SliceComparator.ResourceType.cpuConsumption));
for(Node n : pm){
for(VirtualMachineActionModel vmAM : vmActions){
if(vmAM.getConsumingSlice().equals(null)){
Constraint c = new CumulativeMultiDim(vTasks, vHeights, vCapacities, rp.getSolver(), interestingTimePoints);
rp.getSolver().post(c);
}
}
}
//VM actions
//Puis selon l'action associƩe on regarde les cas !
int[][] sizes = new int[2][];
sizes[0] = new int[dSlices.size()];
sizes[1] = new int[dSlices.size()];
IntVar<?>[] assigns = new IntVar[dSlices.size()];
for (int i = 0; i < dSlices.size(); i++) {
sizes[0][i] = dSlices.get(i).getCPUheight()[0];
sizes[1][i] = dSlices.get(i).getMemoryheight();
sizes[2][i] = dSlices.get(i).getBwInput();
sizes[3][i] = dSlices.get(i).getBwOutput();
assigns[i] = dSlices.get(i).hoster();
}
Node[] ns = rp.getNodes();
IntVar<?>[][] capas = new IntVar[2][];
capas[0] = new IntVar[ns.length];
capas[1] = new IntVar[ns.length];
for (int i = 0; i < ns.length; i++) {
capas[0][i] = rp.getFreeCPU(ns[i]);
capas[1][i] = rp.getFreeMem(ns[i]);
capas[2][i] = rp.getF.getBwInput();
capas[3][i] = dSlices.get(i).getBwOutput();
}
}
public IntVar<?>[] getCapacities(){
return null;
}
}