|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object
|
+--java.lang.Thread
|
+--graphe.Sommet
|
+--graphe.ElectionJeton
|
+--graphe.ColorationJeton
Classe ColorationJeton. Cette classe permet de gérer une coloraiton du graphe de proche en proche, par circulation de jeton.
| Field Summary | |
private boolean[] |
couleursLibres
Tableau de taille le nombre de couleurs (nbCouleurs). |
private int[] |
couleursVoisins
Tableau de taille le nombre de voisins (nbvoisins), permet d'associer chacun de mes voisins déjà colorié à sa couleur |
private int |
maCouleur
numéro de la couleur que j'ai choisie, -1 sinon |
private boolean[] |
mesFilsColores
Tableau de taille le nombre de voisins (nbvoisins), permet de savoir lesquels de mes fils sont coloriés, de manière à ne relancer la coloration que sur ces sommets et non sur mes voisins qui étaient colorés précédemment. |
private int |
nbCouleurs
Nombre de couleurs de la coloration |
private int |
pere
Identifiant de mon pere (celui qui m'a demandé de choisir une couleur) |
| Fields inherited from class graphe.ElectionJeton |
chef, etat, initiateurId, message, strToken |
| Fields inherited from class graphe.Sommet |
fin, id, nbSommet, nbvoisins, voisins, voisinsId |
| Fields inherited from class java.lang.Thread |
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
| Constructor Summary | |
ColorationJeton(int i,
int nb,
boolean[] v,
javax.swing.JTextArea out)
Constructeur, Initialise couleursVoisins et mesFilsColores |
|
| Method Summary | |
private void |
actualiserCouleurs(int k)
Méthode d'actualisation des couleurs, Appelée lorsqu'un voisin nous envoie une deuxième fois sa couleur On réinitialise couleursLibres en repassant tout à vrai sauf les couleurs choisies par nos voisins non-fils (Autrement dit, les sommets coloriés avant moi dans le temps) |
private int |
choisirCouleur()
Méthode de choix d'une couleur: |
private void |
diffuser(java.lang.String s,
int c,
int nb)
Diffuse le message couleur, la couleur c et le nombre de couleur à mes voisins N'AYANT PAS ENCORE DE COULEUR |
void |
etat()
affichage de l'état du sommet |
private int |
extraireVoisin()
Retourne un voisin qui n'a pas encore de couleur |
int |
getCouleur()
Accesseurs en lecture |
private void |
initialiserCouleurs(int k)
Méthode de réinitialisation des couleurs Appelée lorsqu'un voisin se colore et nous communique sa couleur pour la première fois. |
void |
initierColoration()
Méthode de déclenchement de la coloration, appelée par le chef élu Ce sommet va choisir une couleur, la communiquer à ses voisins, demander à un de ses voisins de se colorer |
void |
interprete(java.lang.String s,
int i)
Méthode d'interprétation des messages reçus |
private boolean |
lancerColorationAFils()
Permet de demander à un fils de lancer la coloration sur son sous-arbre |
void |
setNbCouleurs(int k)
Setter nbCouleurs |
private void |
sur_Reception_Coloration(int j)
Appelée à la reception d'un message demandant de se colorer -> A la première réception de ce message, on enregistre l'id de son père -> Lorsque l'on est voisin avec un de nos aïeuls, il va nous envoyer ce message. |
private void |
sur_Reception_Couleur(int c,
int n,
int j)
Appelée à la reception de la couleur c d'un voisin j. |
private void |
sur_Reception_Erreur(int j)
Appelée à réception d'un message d'erreur d'un de ses fils J'annule les couleurs de mes fils déjà colorés Je choisis une couleur si j'ai trouvé une couleur je diffuse cette couleur à mes fils je demande à de mes fils de se colorer par lancerColorationAFils sinon c'est que je n'ai plus de couleur disponible j'envoie erreur à mon père si je suis mon propre père (c'est que je suis l'initiateur de la coloration): la coloration a échoué |
private void |
sur_Reception_Ok(int c,
int j)
Appelée à la reception de Ok On enregistre la couleur de son fils On enregistre que ce fils a réussi à se colorer dans mesFilsColores On demande à un autre fils de se colorer par appel de lancerColorationAFils Si on a plus de fils on envoie Ok à son père si je suis mon propre père (c'est que je suis l'initiateur de la coloration): la coloration a réussie |
| Methods inherited from class graphe.ElectionJeton |
candidature, sur_reception_conf, sur_reception_de, sur_reception_req |
| Methods inherited from class graphe.Sommet |
cancel, ecrit, getDuree, getEcrivain, getLecteur, getNbMess, getNbMessCouleur, initTubes, lit, println, run |
| Methods inherited from class java.lang.Thread |
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
private int nbCouleurs
private int maCouleur
private boolean[] couleursLibres
private int[] couleursVoisins
private boolean[] mesFilsColores
private int pere
| Constructor Detail |
public ColorationJeton(int i,
int nb,
boolean[] v,
javax.swing.JTextArea out)
| Method Detail |
public final int getCouleur()
public void setNbCouleurs(int k)
public final void initierColoration()
throws java.io.IOException
initierColoration in class ElectionJetonjava.io.IOExceptionprivate final int choisirCouleur()
private final void diffuser(java.lang.String s,
int c,
int nb)
throws java.io.IOException
java.io.IOExceptionprivate final void initialiserCouleurs(int k)
private final void actualiserCouleurs(int k)
private final boolean lancerColorationAFils()
throws java.io.IOException
java.io.IOExceptionprivate final int extraireVoisin()
private final void sur_Reception_Couleur(int c,
int n,
int j)
private final void sur_Reception_Coloration(int j)
throws java.io.IOException
java.io.IOException
private final void sur_Reception_Ok(int c,
int j)
throws java.io.IOException
java.io.IOException
private final void sur_Reception_Erreur(int j)
throws java.io.IOException
java.io.IOException
public final void interprete(java.lang.String s,
int i)
throws java.io.IOException
interprete in class ElectionJetonjava.io.IOExceptionpublic final void etat()
etat in class ElectionJeton
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||