algod
Class SommetIO

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--algod.SommetAbstract
              |
              +--algod.SommetIO
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
SommetElection

abstract class SommetIO
extends SommetAbstract

Ajoute les fonctionnalités de communication à un Sommet.

Version:
1.0
Author:
Alexandre Alapetite, Brice Andujar, Gregory Gontier

Field Summary
protected  AlgoDMessageFIFO algoDMessageFIFO
          File d'attente des messages provenant d'autres sommets.
protected  int identifiant
          Identifiant unique de ce sommet.
(package private) static int rndDelaiTransmission
           
static boolean verbose
          Indique si un texte doit apparaître lors de certaines actions comme l'envoit de messages.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
SommetIO(int identifiant)
           
 
Method Summary
(package private)  void affiche(java.lang.String texte)
          Affiche du texte sur la sortie standard.
(package private)  void afficheErreur(java.lang.String texte)
          Affiche du texte sur la sortie standard.
protected  int ajoutVoisin(AlgoDMessageFIFO aAlgoDMessageFIFO, int aIdentifiant)
          Ajoute un voisin à ce sommet.
protected  int ajoutVoisin(SommetVoisin unSommet)
          Ajoute un voisin à ce sommet.
(package private)  void attend(long millis)
          Attend un certain nombre de millisecondes.
 void destroy()
          Arrête le thread et nettoie ses structures et moyens de communication.
private  void envoyerASommet(AlgoDMessage adm, SommetVoisin sommetDestination)
           
(package private)  void envoyerASommet(char typeMessage, java.lang.String contenu, int identSommetSource, SommetVoisin sommetVoisin)
           
(package private)  void envoyerASommet(char typeMessage, java.lang.String contenu, int identSommetSource, SommetVoisin sommetVoisin, int identSommetDestination)
           
protected  void envoyerATousVoisins(char typeMessage, java.lang.String contenu, int identSommetSource)
          Envoie un message à tous les voisins.
protected  void envoyerATousVoisinsSauf(char typeMessage, java.lang.String contenu, int identSommetSource, int numVoisin)
          Envoie un message à tous les voisins sauf un.
protected  void envoyerAVoisin(char typeMessage, java.lang.String contenu, int identSommetSource, int numVoisin)
           
protected  void envoyerAVoisin(char typeMessage, java.lang.String contenu, int identSommetSource, int numVoisin, int identSommetDestination)
          Envoie un message de type typeMessage, provenant du sommet identSommetSource que l'on achemine par le voisin numVoisin pour le sommet identSommetDestination.
 int getIdentifiant()
          Accès à l'identifiant de ce sommet.
 SommetVoisin getVoisin(int ident)
           
 SommetVoisin getVoisinAt(int num)
           
 boolean isFini()
          Indique que le sommet n'a plus de message à traiter dans la file d'attente.
 boolean isVoisin(int ident)
          Teste si un sommet est voisin de celui-ci.
 int nbVoisins()
           
 int numOfVoisin(int ident)
           
 void recevoir(AlgoDMessage adm)
          Ajoute un message provenant d'un autre sommet à la file des messages.
(package private)  void sonnerie()
          Fait un beep
 java.lang.String toString()
          Informations sur ce sommet.
protected  void traiteReception(AlgoDMessage adm, int numVoisin)
          Appelle les méthodes appropriées en fonction du message à traiter aprés un parsage éventuel.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, run, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

rndDelaiTransmission

static int rndDelaiTransmission

algoDMessageFIFO

protected AlgoDMessageFIFO algoDMessageFIFO
File d'attente des messages provenant d'autres sommets.


verbose

public static boolean verbose
Indique si un texte doit apparaître lors de certaines actions comme l'envoit de messages.


identifiant

protected final int identifiant
Identifiant unique de ce sommet.

Constructor Detail

SommetIO

public SommetIO(int identifiant)
Method Detail

destroy

public void destroy()
Description copied from class: SommetAbstract
Arrête le thread et nettoie ses structures et moyens de communication.
Attention, les autres threads ne sont pas prévenus de sa destruction.

Overrides:
destroy in class SommetAbstract

envoyerASommet

private void envoyerASommet(AlgoDMessage adm,
                            SommetVoisin sommetDestination)

envoyerASommet

final void envoyerASommet(char typeMessage,
                          java.lang.String contenu,
                          int identSommetSource,
                          SommetVoisin sommetVoisin,
                          int identSommetDestination)

envoyerASommet

final void envoyerASommet(char typeMessage,
                          java.lang.String contenu,
                          int identSommetSource,
                          SommetVoisin sommetVoisin)

envoyerAVoisin

protected final void envoyerAVoisin(char typeMessage,
                                    java.lang.String contenu,
                                    int identSommetSource,
                                    int numVoisin,
                                    int identSommetDestination)
Envoie un message de type typeMessage, provenant du sommet identSommetSource que l'on achemine par le voisin numVoisin pour le sommet identSommetDestination.


envoyerAVoisin

protected final void envoyerAVoisin(char typeMessage,
                                    java.lang.String contenu,
                                    int identSommetSource,
                                    int numVoisin)

envoyerATousVoisins

protected final void envoyerATousVoisins(char typeMessage,
                                         java.lang.String contenu,
                                         int identSommetSource)
Envoie un message à tous les voisins.


envoyerATousVoisinsSauf

protected final void envoyerATousVoisinsSauf(char typeMessage,
                                             java.lang.String contenu,
                                             int identSommetSource,
                                             int numVoisin)
Envoie un message à tous les voisins sauf un.

Parameters:
numVoisin - le numéro du voisin à ignorer (pas son identifiant).

isFini

public final boolean isFini()
Indique que le sommet n'a plus de message à traiter dans la file d'attente.


traiteReception

protected void traiteReception(AlgoDMessage adm,
                               int numVoisin)
Appelle les méthodes appropriées en fonction du message à traiter aprés un parsage éventuel.


recevoir

public final void recevoir(AlgoDMessage adm)
Ajoute un message provenant d'un autre sommet à la file des messages.
La file FIFO est déjà synchronized.

See Also:
algoDMessageFIFO

toString

public java.lang.String toString()
Description copied from class: SommetAbstract
Informations sur ce sommet.

Overrides:
toString in class SommetAbstract
Returns:
un texte sur une ligne décrivant de sommet.

getIdentifiant

public final int getIdentifiant()
Accès à l'identifiant de ce sommet.


isVoisin

public final boolean isVoisin(int ident)
Teste si un sommet est voisin de celui-ci.

Parameters:
ident - identifiant du sommet potentiellement voisin de celui-ci.
Returns:
si le sommet de cet identifiant est voisin de ce sommet.

getVoisinAt

public final SommetVoisin getVoisinAt(int num)
Parameters:
num - le numéro du voisin auquel on veut avoir accés.
Returns:
le num-ième voisin.

getVoisin

public final SommetVoisin getVoisin(int ident)
Parameters:
ident - l'identifiant du voisin auquel on veut avoir accés.
Returns:
le voisin de l'identifiant ident, null sinon.

numOfVoisin

public final int numOfVoisin(int ident)
Parameters:
ident - l'identifiant d'un sommet voisin de ce sommet.
Returns:
le numéro du voisin de cet identifiant, -1 s'il n'y a pas de voisin avec cet identifiant.

nbVoisins

public final int nbVoisins()
Returns:
le nombre de sommets voisins de celui-ci.

ajoutVoisin

protected int ajoutVoisin(SommetVoisin unSommet)
Ajoute un voisin à ce sommet.
Ne met pas à jour les algorithmes déjà effectués.


ajoutVoisin

protected final int ajoutVoisin(AlgoDMessageFIFO aAlgoDMessageFIFO,
                                int aIdentifiant)
Ajoute un voisin à ce sommet.
Ne met pas à jour les algorithmes déjà effectués.


affiche

void affiche(java.lang.String texte)
Affiche du texte sur la sortie standard.


afficheErreur

void afficheErreur(java.lang.String texte)
Affiche du texte sur la sortie standard.


sonnerie

void sonnerie()
Fait un beep


attend

final void attend(long millis)
Attend un certain nombre de millisecondes.