Test passed
This commit is contained in:
@@ -2,13 +2,31 @@ package impl;
|
||||
|
||||
import interfaces.Capteur;
|
||||
import interfaces.ObserverdeCapteur;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
public class Afficheur implements ObserverdeCapteur {
|
||||
private Canal canalAsync;
|
||||
|
||||
public Afficheur() {}
|
||||
|
||||
public Afficheur(Canal canalAsync) {
|
||||
this.canalAsync = canalAsync;
|
||||
}
|
||||
|
||||
public void setCanal(Canal canal){
|
||||
this.canalAsync = canal;
|
||||
}
|
||||
|
||||
//AO1 - concrete servant
|
||||
//TODO changer capteur à canal
|
||||
@Override
|
||||
public void update(Capteur subject) {
|
||||
subject.getValue();
|
||||
try{
|
||||
Future<Integer> futureValue= canalAsync.getValue();
|
||||
Integer value=futureValue.get();
|
||||
System.out.println(value);
|
||||
}catch(Exception e){
|
||||
//TODO
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,9 @@ public class Canal implements ObserverDeCapteurAsync, CapteurAsync {
|
||||
private int delay=1000;
|
||||
private Scheduler scheduler;
|
||||
private ObserverdeCapteur afficher;
|
||||
private Capteur capteur ;
|
||||
private Capteur capteur;
|
||||
|
||||
public Canal(Capteur capteur, Scheduler scheduler, ObserverdeCapteur afficher) {
|
||||
public Canal(Capteur capteur, Scheduler scheduler, ObserverdeCapteur afficher) {
|
||||
this.capteur = capteur;
|
||||
this.scheduler = scheduler;
|
||||
this.afficher = afficher;
|
||||
|
||||
@@ -3,12 +3,14 @@ package impl;
|
||||
import interfaces.AlgoDiffusion;
|
||||
import interfaces.Capteur;
|
||||
import interfaces.ObserverDeCapteurAsync;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CapteurImpl implements Capteur {
|
||||
public int value;
|
||||
public AlgoDiffusion diffusion;
|
||||
public List<ObserverDeCapteurAsync> observers;
|
||||
public List<ObserverDeCapteurAsync> observers=new ArrayList<ObserverDeCapteurAsync>();
|
||||
|
||||
/*
|
||||
public CapteurImpl(AlgoDiffusion diffusion) {
|
||||
@@ -40,15 +42,14 @@ public class CapteurImpl implements Capteur {
|
||||
@Override
|
||||
public void tick() {
|
||||
value++;
|
||||
for (ObserverDeCapteurAsync obs : observers) {
|
||||
obs.update(this);
|
||||
for (ObserverDeCapteurAsync canal : observers) {
|
||||
canal.update(this);
|
||||
}
|
||||
}
|
||||
|
||||
//AO2 - Concrete Servant
|
||||
@Override
|
||||
public int getValue() {
|
||||
return 0;
|
||||
return this.value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user