/* 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()));
 }