graphe
Class Sommet

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--graphe.Sommet
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
ElectionDistribuee, ElectionJeton

public abstract class Sommet
extends java.lang.Thread

Classe Sommet. Le Sommet permet de communiquer avec les Sommets voisins du graphe. Il connaît tous ses voisins ainsi que le nombre de sommets total du graphe. Il permet aussi d'effectuer des statistiques sur le nombre de messages échangés ainsi que sur la durée de certains traitements.

Version:
1.0
Author:
Estelle Colin, Thomas Peclier, Fabrice Berna @ IUP GMI
See Also:

Field Summary
private  int debut
          Totalise la durée de certains traitements
private  java.io.PipedWriter[] ecrivain
          Tableau de PipeWriter (envoi des messages)
private  boolean encours
          Permet l'exécution ou arrête le Thread
(package private)  int fin
           
(package private)  int id
          Identifiant du Sommet
private  java.io.BufferedReader[] lecteur
          Tableau de BufferedReader (lecture des messages reçus dans les tubes)
private  int nbMess
          Totalise le nombre total de messages envoyés pour les statistiques
private  int nbMessCouleur
          Totalise le nombre total de messages pour la coloration
(package private)  int nbSommet
          Nombre de sommets du graphe
 int nbvoisins
          Nombre de voisins dans le graphe
private  java.io.PipedReader[] pipeLecteur
          Tableau de PipeReader (réception des messages)
private  java.util.Random rand
          Variable utilisée pour un tirage aléatoire des sommets
private  java.io.PrintStream sortie
          Canaux d'écriture
private  javax.swing.JTextArea visu
           
(package private)  int[] voisins
          Tableau permettant de retrouver le canal par rapport à l'identifiants d'un voisins
 int[] voisinsId
          Tableau permettant de retrouver l'identifiant d'un voisin à partir du numéro de son canal de communication
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
Sommet(int i, int nb, boolean[] v, javax.swing.JTextArea out)
          Constructeur du ThreadSommet.
 
Method Summary
 void cancel()
          Arrêt du processus
abstract  void candidature(int init, int couleurReçue)
          Methode abstraite
 void ecrit(int i, java.lang.String s)
          Envoi d'un message sur le canal i.
 void etat()
          Etat du sommet
 int getDuree()
          Getter de la durée d'un traitement
 java.io.PipedWriter getEcrivain(int i)
          Getter d'un ecrivain
 java.io.PipedReader getLecteur(int i)
          Getter d'un lecteur
 int getNbMess()
          Getter du nombre de messages envoyés
 int getNbMessCouleur()
          Getter du nombre de messages de couleur
 void initTubes(boolean[] v)
          Initialisation des tubes : ouverture des extrémités en lecture/ecriture.
abstract  void interprete(java.lang.String s, int i)
          Methode abstraite
 java.lang.String lit(int i)
          Lecture du message reçu
 void println(java.lang.String s)
          Fonction d'affichage
 void run()
          Méthode appelée au lancement de la méthode Start (méthode Thread)
 
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

rand

private final java.util.Random rand
Variable utilisée pour un tirage aléatoire des sommets


nbSommet

int nbSommet
Nombre de sommets du graphe


id

int id
Identifiant du Sommet


nbvoisins

public int nbvoisins
Nombre de voisins dans le graphe


voisins

int[] voisins
Tableau permettant de retrouver le canal par rapport à l'identifiants d'un voisins


voisinsId

public int[] voisinsId
Tableau permettant de retrouver l'identifiant d'un voisin à partir du numéro de son canal de communication


pipeLecteur

private final java.io.PipedReader[] pipeLecteur
Tableau de PipeReader (réception des messages)


lecteur

private final java.io.BufferedReader[] lecteur
Tableau de BufferedReader (lecture des messages reçus dans les tubes)


ecrivain

private final java.io.PipedWriter[] ecrivain
Tableau de PipeWriter (envoi des messages)


encours

private boolean encours
Permet l'exécution ou arrête le Thread


nbMess

private int nbMess
Totalise le nombre total de messages envoyés pour les statistiques


nbMessCouleur

private int nbMessCouleur
Totalise le nombre total de messages pour la coloration


debut

private int debut
Totalise la durée de certains traitements


fin

int fin

sortie

private java.io.PrintStream sortie
Canaux d'écriture


visu

private javax.swing.JTextArea visu
Constructor Detail

Sommet

public Sommet(int i,
              int nb,
              boolean[] v,
              javax.swing.JTextArea out)
Constructeur du ThreadSommet. Initialisation des variables.

Method Detail

getLecteur

public final java.io.PipedReader getLecteur(int i)
Getter d'un lecteur

Returns:
PipedReader

getEcrivain

public final java.io.PipedWriter getEcrivain(int i)
Getter d'un ecrivain

Returns:
PipedWriter

getNbMess

public final int getNbMess()
Getter du nombre de messages envoyés

Returns:
int

getDuree

public int getDuree()
Getter de la durée d'un traitement

Returns:
long

getNbMessCouleur

public final int getNbMessCouleur()
Getter du nombre de messages de couleur

Returns:
int

initTubes

public final void initTubes(boolean[] v)
Initialisation des tubes : ouverture des extrémités en lecture/ecriture. Création des structures de lecture dans les tubes (BufferedReaders)


ecrit

public final void ecrit(int i,
                        java.lang.String s)
                 throws java.io.IOException
Envoi d'un message sur le canal i.

Throws:
java.io.IOException

lit

public final java.lang.String lit(int i)
                           throws java.io.IOException
Lecture du message reçu

Returns:
String, le message lu
Throws:
java.io.IOException

cancel

public final void cancel()
Arrêt du processus


etat

public void etat()
Etat du sommet


run

public final void run()
Méthode appelée au lancement de la méthode Start (méthode Thread)

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

println

public final void println(java.lang.String s)
Fonction d'affichage


candidature

public abstract void candidature(int init,
                                 int couleurReçue)
                          throws java.io.IOException
Methode abstraite

java.io.IOException

interprete

public abstract void interprete(java.lang.String s,
                                int i)
                         throws java.io.IOException
Methode abstraite

java.io.IOException