/* Calculer le debit du reseau * Debit Total = sum (debit sur chaque machine) */ public void calculateDebit() { Map<Integer, Integer> nbMessEachSource = new HashMap<Integer, Integer>(); Map<Integer, Double> sumEachSource = new HashMap<Integer, Double>(); for (int i = 0; i < getNbMachines(); i++) { nbMessEachSource.put(i, 1); sumEachSource.put(i, 1.0); } for (Message m : getMessageArrives()) { int temp1 = nbMessEachSource.get(m.getSource().getId()); double temps2 = sumEachSource.get(m.getSource().getId()); temp1 += 1; temps2 += (m.getDateMessDelivre() - m.getDate()) / getUniteTemps(m.getSource().getId(), m.getSource().getCapacCarte()); nbMessEachSource.put(m.getSource().getId(), temp1); sumEachSource.put(m.getSource().getId(), temps2); } double debit = 0; for (int i = 0; i < getNbMachines(); i++) { debit += nbMessEachSource.get(i) / sumEachSource.get(i); } setDebit(debit); }
/* Supposons qu'on a un liste de messages arrives. Definissons: * dSi: le date qu'un message i est envoye' * dAi: la date qu'un message i est arrive' * latence = (sum[0->nbMessTotal](dAi-dSi)/uniteTemps(source qui envoie message i))/nbMessTotal */ public void calculLatence() { double temp = 0; for (Message m : getMessageArrives()) { temp += (m.getDateMessDelivre() - m.getDate()) / getUniteTemps(m.getSource().getId(), m.getTaille()); } setLatence(temp / (getSequencer().getBuffer().size())); }