diff --git a/src/impl/CapteurImpl.java b/src/impl/CapteurImpl.java index 4ca09d0..b7c462e 100644 --- a/src/impl/CapteurImpl.java +++ b/src/impl/CapteurImpl.java @@ -1,7 +1,8 @@ package impl; +import interfaces.AlgoDiffusion; import interfaces.Capteur; -import interfaces.Observer; +import interfaces.ObserverDeCapteurAsync; import java.time.Clock; import java.util.ArrayList; @@ -10,14 +11,16 @@ import java.util.List; public class CapteurImpl implements Capteur { public Clock clock = Clock.systemUTC(); public int value; - public List> observers; + public AlgoDiffusion diffusion; + public List observers; - public CapteurImpl() { + public CapteurImpl(AlgoDiffusion diffusion) { value = 0; observers = new ArrayList<>(); + this.diffusion = diffusion; } @Override - public void attach(Observer o) { + public void attach(ObserverDeCapteurAsync o) { try { observers.add(o); }catch(Exception e) { @@ -27,7 +30,7 @@ public class CapteurImpl implements Capteur { } @Override - public void detach(Observer o) { + public void detach(ObserverDeCapteurAsync o) { try { observers.remove(o); }catch(Exception e) { @@ -38,7 +41,10 @@ public class CapteurImpl implements Capteur { @Override public void tick() { - + for (ObserverDeCapteurAsync canal : observers) { + canal.update(this); + } + this.diffusion.execture(); } //AO2 - Concrete Servant @@ -46,4 +52,5 @@ public class CapteurImpl implements Capteur { public int getValue() { return 0; } + } diff --git a/src/impl/DiffusionAtomique.java b/src/impl/DiffusionAtomique.java index 444a251..d4e28b6 100644 --- a/src/impl/DiffusionAtomique.java +++ b/src/impl/DiffusionAtomique.java @@ -1,5 +1,18 @@ package impl; -public class DiffusionAtomique { +import interfaces.AlgoDiffusion; +public class DiffusionAtomique implements AlgoDiffusion { + + @Override + public void configure() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'configure'"); + } + + @Override + public void execture() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'execture'"); + } } diff --git a/src/interfaces/Capteur.java b/src/interfaces/Capteur.java index 635a7b8..fa73b88 100644 --- a/src/interfaces/Capteur.java +++ b/src/interfaces/Capteur.java @@ -1,7 +1,7 @@ package interfaces; public interface Capteur { - public void attach(Observer o); - public void detach(Observer o); + public void attach(ObserverDeCapteurAsync o); + public void detach(ObserverDeCapteurAsync o); public void tick(); //AO2 - servant