Subversion Repositories eFlore/Applications.coel

Rev

Rev 1415 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1415 Rev 1468
Line 27... Line 27...
27
		numeroSequence = 0;
27
		numeroSequence = 0;
28
	}
28
	}
Line 29... Line 29...
29
	
29
	
30
	// Retourne le numéro du séquenceur
30
	// Retourne le numéro du séquenceur
-
 
31
	public int lancerRequeteSynchrone(Rafraichissable vueARafraichir)	{
-
 
32
		
31
	public int lancerRequeteSynchrone(Rafraichissable vueARafraichir)	{
33
		if (Mediateur.DEBUG_CHARGEMENT) System.out.println("[CHARGEMENT] lancerRequeteSynchrone("+vueARafraichir.getClass().getName()+")");
32
		if (numeroSequence == 0)	{
34
		//if (numeroSequence == 0)	{
33
			mediateur.activerChargement("Chargement en cours... Veuillez patienter");
35
			mediateur.activerChargement(this, "Chargement en cours... Veuillez patienter");
Line 34... Line 36...
34
		}
36
		//}
35
		
37
		
36
		numeroSequence++;
38
		numeroSequence++;
37
		if (Mediateur.DEBUG) System.out.println("==> Sequenceur : Envoi requete n°" + numeroSequence);
39
		if (Mediateur.DEBUG) System.out.println("==> Sequenceur : Envoi requete n°" + numeroSequence);
Line 41... Line 43...
41
		return numeroSequence;
43
		return numeroSequence;
42
	}
44
	}
Line 43... Line 45...
43
	
45
	
44
	//Offrir la possibilité d'enfiler (=mettre à la fin d'une file d'attente) un rafraichissement dont on a déjà le retour
46
	//Offrir la possibilité d'enfiler (=mettre à la fin d'une file d'attente) un rafraichissement dont on a déjà le retour
45
	public int enfilerRafraichissement(Rafraichissable vueARafraichir, Object nouvellesDonnees)	{
47
	public int enfilerRafraichissement(Rafraichissable vueARafraichir, Object nouvellesDonnees)	{
46
		if (numeroSequence == 0)	{
48
		//if (numeroSequence == 0)	{
47
			mediateur.activerChargement("Chargement en cours... Veuillez patienter");
49
			mediateur.activerChargement(this, "Chargement en cours... Veuillez patienter");
48
		}
50
		//}
49
		numeroSequence++;
51
		numeroSequence++;
50
		if (Mediateur.DEBUG) System.out.println("|| Sequenceur : Empiler n°" + numeroSequence);
52
		if (Mediateur.DEBUG) System.out.println("|| Sequenceur : Empiler n°" + numeroSequence);
51
		Requete requete = new Requete(vueARafraichir, numeroSequence);
53
		Requete requete = new Requete(vueARafraichir, numeroSequence);
52
		Reponse reponse = new Reponse(nouvellesDonnees, numeroSequence);
54
		Reponse reponse = new Reponse(nouvellesDonnees, numeroSequence);
53
		requetes.put(numeroSequence, requete);
55
		requetes.put(numeroSequence, requete);
54
		rafraichir(reponse);
56
		rafraichir(reponse);
55
		mediateur.desactiverChargement();
57
		mediateur.desactiverChargement(this);
56
		return numeroSequence;
58
		return numeroSequence;
Line 57... Line 59...
57
	}
59
	}
Line 58... Line 60...
58
	
60
	
59
	public void rafraichir(Object nouvellesDonnees) {
61
	public void rafraichir(Object nouvellesDonnees) {
60
 
62
 
61
		try	{
63
		try	{
62
			Reponse reponse = (Reponse) nouvellesDonnees;
64
			Reponse reponse = (Reponse) nouvellesDonnees;
63
			if (Mediateur.DEBUG) System.out.println("<== Sequenceur : Réception d'une réponse, n°" + reponse.obtenirNumeroSequence() + ", marqueur retour " + marqueurRetour);
65
			if (Mediateur.DEBUG) System.out.println("<== Sequenceur : Réception d'une réponse, n°" + reponse.obtenirNumeroSequence() + ", marqueur retour " + marqueurRetour);
64
			
66
 
65
			if (reponse.obtenirNumeroSequence() == marqueurRetour)	{
67
			if (reponse.obtenirNumeroSequence() == marqueurRetour)	{
-
 
68
				// Si le numéro de séquence du retour correspond au marqueur, on rafraichit
66
				// Si le numéro de séquence du retour correspond au marqueur, on rafraichit
69
				Requete requete = requetes.get(marqueurRetour);
67
				Requete requete = requetes.get(marqueurRetour);
-
 
68
				if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+reponse.obtenirNumeroSequence()+" à "+requete.getVueARafraichir().getClass().toString());
70
				if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+reponse.obtenirNumeroSequence()+" à "+requete.getVueARafraichir().getClass().toString());
69
				requete.rafraichir(reponse.obtenirRetour());
71
				mediateur.desactiverChargement(this);
70
				mediateur.desactiverChargement();
72
				requete.rafraichir(reponse.obtenirRetour());
71
				requetes.remove(marqueurRetour);
73
				requetes.remove(marqueurRetour);
72
				marqueurRetour++;
74
				marqueurRetour++;
Line 79... Line 81...
79
			if (Mediateur.DEBUG) {
81
			if (Mediateur.DEBUG) {
80
				System.out.println("<== Sequenceur : Réception d'une réponse incorrecte");
82
				System.out.println("<== Sequenceur : Réception d'une réponse incorrecte");
81
				System.out.println("    Le séquenceur ne peut recevoir que des Reponse");
83
				System.out.println("    Le séquenceur ne peut recevoir que des Reponse");
82
				System.out.println("    > nouvellesDonnees = "+nouvellesDonnees.getClass().toString());
84
				System.out.println("    > nouvellesDonnees = "+nouvellesDonnees.getClass().toString());
83
			}
85
			}
84
			mediateur.desactiverChargement();
86
			mediateur.desactiverChargement(this);
85
		}
87
		}
86
	}
88
	}
Line 87... Line 89...
87
	
89
	
88
	public int obtenirNumeroSequence()	{
90
	public int obtenirNumeroSequence()	{
Line 93... Line 95...
93
		if (requetes.size()>0)	{
95
		if (requetes.size()>0)	{
94
			// on récupère la première requete dans la file
96
			// on récupère la première requete dans la file
95
			Requete premiereRequete = requetes.get(marqueurRetour);
97
			Requete premiereRequete = requetes.get(marqueurRetour);
96
			if (premiereRequete!=null && premiereRequete.hasResponse())	{
98
			if (premiereRequete!=null && premiereRequete.hasResponse())	{
97
				if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+premiereRequete.obtenirReponse().obtenirNumeroSequence()+" à "+premiereRequete.getVueARafraichir().getClass().toString());
99
				if (Mediateur.DEBUG) System.out.println("<|-- Sequenceur : Retourne paquet n°"+premiereRequete.obtenirReponse().obtenirNumeroSequence()+" à "+premiereRequete.getVueARafraichir().getClass().toString());
98
				premiereRequete.rafraichir();
100
				premiereRequete.rafraichir();				
99
				mediateur.desactiverChargement();
101
				mediateur.desactiverChargement(this);
100
				requetes.remove(marqueurRetour);
102
				requetes.remove(marqueurRetour);
101
				marqueurRetour++;
103
				marqueurRetour++;
102
				avancerSequence();
104
				avancerSequence();
103
			} 
105
			} 
104
		}		
106
		}