23,8 → 23,6 |
private Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
|
public Sequenceur() { |
this.mediateur = mediateur; |
//requetes = new LinkedList<Requete>(); |
requetes = new HashMap<Integer, Requete>(); |
numeroSequence = 0; |
} |
36,10 → 34,10 |
} |
|
numeroSequence++; |
System.out.println("lancer Requete " + numeroSequence); |
if (Mediateur.DEBUG) System.out.println("==> Sequenceur : Envoi requete n°" + numeroSequence); |
Requete requete = new Requete(vueARafraichir, numeroSequence); |
//requetes.add(requete); |
requetes.put(numeroSequence, requete); |
|
return numeroSequence; |
} |
|
49,25 → 47,27 |
mediateur.activerChargement("Chargement en cours... Veuillez patienter"); |
} |
numeroSequence++; |
System.out.println("empiler " + numeroSequence); |
if (Mediateur.DEBUG) System.out.println("|| Sequenceur : Empiler n°" + numeroSequence); |
Requete requete = new Requete(vueARafraichir, numeroSequence); |
Reponse reponse = new Reponse(nouvellesDonnees, numeroSequence); |
requetes.put(numeroSequence, requete); |
rafraichir(reponse); |
mediateur.desactiverChargement(); |
return numeroSequence; |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
|
|
try { |
Reponse reponse = (Reponse) nouvellesDonnees; |
System.out.println("rafraichir " + reponse.obtenirNumeroSequence() + " marqueur retour " + marqueurRetour); |
if (Mediateur.DEBUG) System.out.println("<== Sequenceur : Réception d'une réponse, n°" + reponse.obtenirNumeroSequence() + ", marqueur retour " + marqueurRetour); |
|
if (reponse.obtenirNumeroSequence() == marqueurRetour) { |
// Si le numéro de séquence du retour correspond au marqueur, on rafraichit |
Requete requete = requetes.get(marqueurRetour); |
requete.setRetour(reponse); |
requete.rafraichir(); |
if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+reponse.obtenirNumeroSequence()+" à "+requete.getVueARafraichir().getClass().toString()); |
requete.rafraichir(reponse.obtenirRetour()); |
mediateur.desactiverChargement(); |
requetes.remove(marqueurRetour); |
marqueurRetour++; |
avancerSequence(); |
74,12 → 74,14 |
} else { |
// Sinon, on enregistre le retour |
requetes.get(reponse.obtenirNumeroSequence()).setRetour(reponse); |
|
// Vérifier que les requetes précédentes ont été exécutées si elles ont eues un retour |
//avancerSequence(); |
} |
} catch (ClassCastException e) { |
Debug.log("Le séquencuer ne peut recevoir que des Reponse"); |
if (Mediateur.DEBUG) { |
System.out.println("<== Sequenceur : Réception d'une réponse incorrecte"); |
System.out.println(" Le séquenceur ne peut recevoir que des Reponse"); |
System.out.println(" > nouvellesDonnees = "+nouvellesDonnees.getClass().toString()); |
} |
mediateur.desactiverChargement(); |
} |
} |
|
89,18 → 91,17 |
|
public void avancerSequence() { |
if (requetes.size()>0) { |
// on récupère la première requete dans la file |
Requete premiereRequete = requetes.get(marqueurRetour); |
System.out.println("premiere Requete " + premiereRequete ); |
if (premiereRequete!=null && premiereRequete.aRetour()) { |
if (premiereRequete!=null && premiereRequete.hasResponse()) { |
if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+premiereRequete.obtenirReponse().obtenirNumeroSequence()+" à "+premiereRequete.getVueARafraichir().getClass().toString()); |
premiereRequete.rafraichir(); |
mediateur.desactiverChargement(); |
requetes.remove(marqueurRetour); |
marqueurRetour++; |
avancerSequence(); |
} |
} else { |
mediateur.desactiverChargement(); |
} |
|
} |
} |
|
|