diff --git a/src/impl/Afficheur.java b/src/impl/Afficheur.java index 1b4193d..895888d 100644 --- a/src/impl/Afficheur.java +++ b/src/impl/Afficheur.java @@ -7,26 +7,17 @@ import java.util.Random; import java.util.concurrent.Future; public class Afficheur implements ObserverdeCapteur { - private Canal canalAsync; private int id= new Random().nextInt(100); public Afficheur() {} - public Afficheur(Canal canalAsync) { - this.canalAsync = canalAsync; - } - - public void setCanal(Canal canal){ - this.canalAsync = canal; - } - public void setId(int id){ this.id = id; } //AO1 - concrete servant @Override - public void update(Capteur subject) { + public void update(Canal canalAsync) { try{ Future futureValue= canalAsync.getValue(); Integer value=futureValue.get(); diff --git a/src/impl/Canal.java b/src/impl/Canal.java index 65a07fd..81e6f9e 100644 --- a/src/impl/Canal.java +++ b/src/impl/Canal.java @@ -21,8 +21,8 @@ public class Canal implements ObserverDeCapteurAsync, CapteurAsync { //AO1 - proxy @Override - public Future update(Capteur c) { - return scheduler.enquete(new UpdateReq(capteur,afficher),new Random().nextInt(1000)+500); + public Future update() { + return scheduler.enquete(new UpdateReq(this,afficher),new Random().nextInt(1000)+500); } //AO2 - proxy diff --git a/src/impl/CapteurImpl.java b/src/impl/CapteurImpl.java index 2efe926..7e45d48 100644 --- a/src/impl/CapteurImpl.java +++ b/src/impl/CapteurImpl.java @@ -43,7 +43,7 @@ public class CapteurImpl implements Capteur { public void tick() { value++; for (ObserverDeCapteurAsync canal : observers) { - canal.update(this); + canal.update(); } } diff --git a/src/impl/Scheduler.java b/src/impl/Scheduler.java index 3d648bb..d32653a 100644 --- a/src/impl/Scheduler.java +++ b/src/impl/Scheduler.java @@ -15,6 +15,6 @@ public class Scheduler { } public Future enquete(Callable task, long delay) { - return scheduler.schedule(task, delay, TimeUnit.MICROSECONDS); + return scheduler.schedule(task, delay, TimeUnit.MILLISECONDS); } } diff --git a/src/impl/UpdateReq.java b/src/impl/UpdateReq.java index d065174..ce5dff2 100644 --- a/src/impl/UpdateReq.java +++ b/src/impl/UpdateReq.java @@ -6,18 +6,18 @@ import interfaces.ObserverdeCapteur; import java.util.concurrent.Callable; public class UpdateReq implements Callable { - private Capteur capteur; + private Canal canalAsync; private ObserverdeCapteur afficheur; - public UpdateReq(Capteur capteur, ObserverdeCapteur afficheur) { - this.capteur = capteur; + public UpdateReq(Canal canalAsync, ObserverdeCapteur afficheur) { + this.canalAsync = canalAsync; this.afficheur = afficheur; } //AO1 - concrete MI @Override public Void call() { - afficheur.update(capteur); + afficheur.update(canalAsync); return null; } } \ No newline at end of file diff --git a/src/interfaces/ObserverDeCapteurAsync.java b/src/interfaces/ObserverDeCapteurAsync.java index e003852..ff7a0cd 100644 --- a/src/interfaces/ObserverDeCapteurAsync.java +++ b/src/interfaces/ObserverDeCapteurAsync.java @@ -4,5 +4,5 @@ import java.util.concurrent.Future; public interface ObserverDeCapteurAsync { //AO1 - service - Future update(Capteur c); + Future update(); } diff --git a/src/interfaces/ObserverdeCapteur.java b/src/interfaces/ObserverdeCapteur.java index f1e9ded..5b9c352 100644 --- a/src/interfaces/ObserverdeCapteur.java +++ b/src/interfaces/ObserverdeCapteur.java @@ -1,5 +1,7 @@ package interfaces; +import impl.Canal; + public interface ObserverdeCapteur{ //AO1 - servant - public void update(Capteur subject); + public void update(Canal canalAsync); } diff --git a/src/main.java b/src/main.java index 47df5b0..b1685b3 100644 --- a/src/main.java +++ b/src/main.java @@ -12,26 +12,16 @@ import interfaces.ObserverdeCapteur; public class main { - static int NB_CANAUX = 10; + static int NB_CANAUX = 2; public static void main(String[] argv){ Scheduler scheduler = new Scheduler(NB_CANAUX); Capteur c = new CapteurImpl(); - /* - Afficheur a=new Afficheur(); - Canal canal=new Canal(c,scheduler,a); - a.setCanal(canal); - - c.attach(canal); - */ - - for(int i = 0; i