gestionProc
Class ProcessusFactory

java.lang.Object
  extended bygestionProc.ProcessusFactory

public class ProcessusFactory
extends java.lang.Object

Factory pour creer des processus a identifiants uniques de taille Processus.TAILLE_IDENT. Le principe est d'incrementer un compteur % Processus.TAILLE_IDENT et de completer sa valeur a Processus.TAILLE_IDENT chiffres par des 0. Les identifiants crees sont memorises dans un pool. Une exception est levee si le pool est trop plein. Il est possible de supprimer un identifiant du pool.


Constructor Summary
ProcessusFactory()
          Cree une factory dont le pool est vide.
 
Method Summary
 boolean contientProc(Processus p)
          Retourne vrai si le pool contient l'identifiant du processus passe en parametre.
 Processus creerProcessus(int p)
          Cree un processus de priorite p comprise entre 0 et Processus.PRIO_MAX dont l'identifiant n'appartient pas au pool, et ajoute ce nouvel identifiant au pool.
 void detruireProcessus(Processus p)
          Supprime du pool le processus p.
 int nbElemPool()
          Retourne le nombre d'elements dans le pool d'identifiants.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProcessusFactory

public ProcessusFactory()
Cree une factory dont le pool est vide.

Method Detail

nbElemPool

public int nbElemPool()
Retourne le nombre d'elements dans le pool d'identifiants.


creerProcessus

public Processus creerProcessus(int p)
                         throws PlusDePlaceException
Cree un processus de priorite p comprise entre 0 et Processus.PRIO_MAX dont l'identifiant n'appartient pas au pool, et ajoute ce nouvel identifiant au pool. Incremente le compteur.

Parameters:
p - la priorite du processus a creer.
Returns:
un processus de priorite p
Throws:
PlusDePlaceException - il faut detruire au moins un processus pour pouvoir en creer un nouveau.

detruireProcessus

public void detruireProcessus(Processus p)
                       throws ProcessusInexistantException
Supprime du pool le processus p. N'altere pas le compteur.

Parameters:
p - le processus a detruire
Throws:
ProcessusInexistantException - ce processus n'appartient pas au pool

contientProc

public boolean contientProc(Processus p)
Retourne vrai si le pool contient l'identifiant du processus passe en parametre.

Parameters:
p - le processus qu'on cherche dans le pool.