diff --git a/src/impl/Afficheur.java b/src/impl/Afficheur.java index 1b4193d..d91cebf 100644 --- a/src/impl/Afficheur.java +++ b/src/impl/Afficheur.java @@ -1,34 +1,25 @@ package impl; -import interfaces.Capteur; +import interfaces.CapteurAsync; import interfaces.ObserverdeCapteur; 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(CapteurAsync capteurAsync) { try{ - Future futureValue= canalAsync.getValue(); + Future futureValue= capteurAsync.getValue(); Integer value=futureValue.get(); System.out.println("Afficheur " + id+", value: "+ value); }catch(Exception e){ 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/UpdateReq.java b/src/impl/UpdateReq.java index d065174..3ad4023 100644 --- a/src/impl/UpdateReq.java +++ b/src/impl/UpdateReq.java @@ -1,23 +1,23 @@ package impl; -import interfaces.Capteur; +import interfaces.CapteurAsync; import interfaces.ObserverdeCapteur; import java.util.concurrent.Callable; public class UpdateReq implements Callable { - private Capteur capteur; + private CapteurAsync canalProxy; private ObserverdeCapteur afficheur; - public UpdateReq(Capteur capteur, ObserverdeCapteur afficheur) { - this.capteur = capteur; + public UpdateReq(CapteurAsync canalProxy, ObserverdeCapteur afficheur) { + this.canalProxy = canalProxy; this.afficheur = afficheur; } //AO1 - concrete MI @Override public Void call() { - afficheur.update(capteur); + afficheur.update(canalProxy); 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..505a783 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(CapteurAsync capteurAsync); } diff --git a/src/main.java b/src/main.java index e78efaf..191c011 100644 --- a/src/main.java +++ b/src/main.java @@ -9,6 +9,7 @@ import impl.CapteurImpl; import impl.DiffusionAtomique; import impl.Scheduler; import interfaces.AlgoDiffusion; +import interfaces.Capteur; public class main { @@ -21,20 +22,10 @@ public class main { algo.capteur = c; c.setAlgoDiffusion(algo); - /* - Afficheur a=new Afficheur(); - Canal canal=new Canal(c,scheduler,a); - a.setCanal(canal); - - c.attach(canal); - */ - - for(int i = 0; i