/**
 * Utilitaires d'aide au développement.
 *
 */

public class Utilitaires {
  
  /**
   * Utilitaire d'implantation d'un minuteur.<br>
   * Une fois configuré avec un temps d'exécution (en milli-secondes) via le champ t,<br>
   * puis lancé via la fonction run(),<br>
   * le champ booléen go conserve la valeur true pendant le temps t, puis passe à false.
   *
   */
  public static class Minuteur extends Thread {
    
    /**
     * Le temps de commutation.
     *
     */
    public int temps = 0;

    /**
     * Le booléen qui, initialisé à true, passera à false.
     *
     */
    public boolean enCours = true;

    /**
     * Le temps initial.
     *
     */
    public long ti = -1L;

    /**
     * Le temps final.
     *
     */
    public long tf = -1L;

    /**
     * La duree effective.
     *
     */
    public long dt = -1L;

    /**
     * Fonction de lancement du minuteur.
     *
     */
    public void lancement() {
      start();
      ti = System.nanoTime();
    }
    
    public void run() {
      try {
        sleep(temps);
        tf = System.nanoTime();
        dt = tf-ti;}
      catch(Exception e) { }
      enCours = false;
    }
  }
}