All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class System_file.Free_bloc

java.lang.Object
   |
   +----System_file.Free_bloc

public class Free_bloc
extends Object
Classe Free_bloc. Cette classe est utilisée pour gérer l'espace libre du disque .
L'element adresse[0] designe le prochain Free_bloc contenant des adresses de bloc libres .
Ces elements sont alloues lors de l'instanciation du disque, plus particulierement lors de l'appel au constructeur de la classe Super_bloc

See Also:
Super_bloc

Variable Index

 o adresse
Tableau des numeros de blocs pointés .
 o nbBlocs
Nombre de blocs pointes par ce bloc (Nombre d'elements du tableau adresse)

Constructor Index

 o Free_bloc()

Method Index

 o ecrire_bloc(int)
Fonction qui ecrit un bloc de type Free_bloc .
 o lire_bloc(int)
Fonction qui lit un bloc de type Free_bloc .
 o nouveau_bloc_libre(Super_bloc, int)
Fonction qui rajoute un bloc libre la liste du Super_bloc .
 o prendre_bloc_libre(Super_bloc)
Fonction qui enleve un bloc libre la liste du Super_bloc .
 o prendre_element()
Fonction qui prend un bloc libre, le supprime de la liste et retourne son numero .
 o rendre_element(int)
Fonction rajoute un bloc libre la liste du Free_bloc
 o tableau_plein()
Retourne vrai si le le bloc ne peut plus contenir de nouvelle adresse
 o tableau_vide()
Retourne vrai si le le bloc ne contient aucune adresse de bloc libre

Variables

 o adresse
 public int adresse[]
Tableau des numeros de blocs pointés . On construit le tableau pour qu'il tienne dans un bloc . On effectue le calcul a partir de la taille des blocs definis dans Disk, et la taille d'un entier (4).

 o nbBlocs
 public int nbBlocs
Nombre de blocs pointes par ce bloc (Nombre d'elements du tableau adresse)

Constructors

 o Free_bloc
 public Free_bloc()

Methods

 o ecrire_bloc
 public void ecrire_bloc(int no_bloc)
Fonction qui ecrit un bloc de type Free_bloc . Le bloc ecrit est l'objet en cours

Parameters:
no_bloc - Le numero du bloc à écrire
 o lire_bloc
 public void lire_bloc(int no_bloc)
Fonction qui lit un bloc de type Free_bloc . Affecte les attributs de l'objet en cours avec le bloc lu

Parameters:
no_bloc - Le numero du bloc à lire
 o prendre_element
 public int prendre_element() throws Exception
Fonction qui prend un bloc libre, le supprime de la liste et retourne son numero .

Returns:
Le numero de bloc trouve
Throws: Exception
Le bloc ne contient pas d'adresse de blocs libres
 o rendre_element
 public void rendre_element(int no_bloc) throws Exception
Fonction rajoute un bloc libre la liste du Free_bloc

Parameters:
no_bloc - Le numero de bloc libre a rajouter
Throws: Exception
Le bloc est plein
 o nouveau_bloc_libre
 public void nouveau_bloc_libre(Super_bloc s,
                                int no) throws Exception
Fonction qui rajoute un bloc libre la liste du Super_bloc . On alloue un nouveau Free_bloc si necessaire

Parameters:
s - Le super-bloc qui contient le lien vers le premier Free_bloc
no - Le numero de bloc libre a rajouter
Throws: Exception
Le bloc est plein
 o prendre_bloc_libre
 public int prendre_bloc_libre(Super_bloc s) throws Exception
Fonction qui enleve un bloc libre la liste du Super_bloc . On libere un Free_bloc si necessaire

Parameters:
s - Le super-bloc qui contient le lien vers le premier Free_bloc
Returns:
Le numero de bloc disponible
Throws: Exception
Le bloc ne contient pas d'adresse de blocs libres
 o tableau_plein
 private Boolean tableau_plein()
Retourne vrai si le le bloc ne peut plus contenir de nouvelle adresse

 o tableau_vide
 private Boolean tableau_vide()
Retourne vrai si le le bloc ne contient aucune adresse de bloc libre


All Packages  Class Hierarchy  This Package  Previous  Next  Index