Skip to content
Snippets Groups Projects
Commit 922b5ac7 authored by ADAMOU Salim's avatar ADAMOU Salim
Browse files

modification de la classe Alarm.java avec l'ajout d'une class...

modification de la classe  Alarm.java avec l'ajout d'une class ShutdownAlarm.java qui etend alarm et qui utilise Ticker.
parent 363adec5
Branches
No related tags found
No related merge requests found
package fr.univamu.l2mi;
import fr.univamu.l2mi.ticker.Alarm;
import fr.univamu.l2mi.ticker.MyTickable;
import fr.univamu.l2mi.ticker.Ticker;
import java.time.LocalTime;
public class Main {
public static void main(String[] args) throws InterruptedException {
Ticker ticker = new Ticker();
......@@ -20,12 +16,13 @@ public class Main {
buzzAlarm.addReminder("Buzz", 5);
ticker.add(buzzAlarm);
// Alarme pour éteindre le Ticker après 30 secondes avec une référence à l'objet Ticker
ShutdownAlarm shutdownAlarm = new ShutdownAlarm(ticker);
ticker.add(shutdownAlarm);
// Démarrer le Ticker
ticker.startTicking();
// Ajouter une attente infinie pour maintenir le programme en cours d'exécution
while (true) {
Thread.sleep(1000);
}
}
}
package fr.univamu.l2mi;
import fr.univamu.l2mi.ticker.Alarm;
import fr.univamu.l2mi.ticker.Ticker;
public class ShutdownAlarm extends Alarm {
private final Ticker ticker;
public ShutdownAlarm(Ticker ticker) {
super();
this.ticker = ticker;
}
@Override
public void notifyTick() {
super.notifyTick();
// Ajoutez une condition pour vérifier si l'alarme doit éteindre le Ticker
if (shouldShutdown()) {
System.out.println("ShutdownAlarm: Arrêt de l'horloge.");
stopTicker();
}
}
protected boolean shouldShutdown() {
return getCounter() >= 30;
}
// arrêter le Ticker
protected void stopTicker() {
System.out.println("Ticker arrêté.");
ticker.stopTicking();
}
}
......@@ -30,6 +30,11 @@ public class Alarm implements Tickable {
}
}
// Ajouter une méthode pour obtenir la valeur de counter
public int getCounter() {
return counter;
}
private static class Reminder {
private final String message;
private final int interval;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment