subdiv.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #ifndef subdiv_h
  2. #define subdiv_h
  3. /* --- Include --- */
  4. #include "constante.h"
  5. /* --- Constante --- */
  6. #define MEMEMPTY 0
  7. #define MEMSET 1
  8. /* --- Structures --- */
  9. typedef struct node node;
  10. struct node{
  11. int index; //Index dans le tableau mem de subdiv
  12. int start; //Pos debut (incluse)
  13. int end; //Pos fin (non incluse)
  14. int length; //Taille réellement utilisée
  15. unsigned char type;
  16. int prev; //Position de noeud d'avant
  17. int next; //Position du prochain noeud
  18. };
  19. typedef struct{
  20. node mem[MEM_SIZE / 2];
  21. boolean use[MEM_SIZE / 2];
  22. }subdiv;
  23. /* --- Fonctions --- */
  24. /**
  25. * Initialise la structure de gestion
  26. * @param subdiv* Le gestionnaire de mémoire par subdivision
  27. */
  28. void ini_subdiv(subdiv*);
  29. /**
  30. * Ajoute une donnée dans la mémoire
  31. * @param subdiv* Le gestionnaire de mémoire par subdivision
  32. * @param char* La mémoire
  33. * @param char* La clef
  34. * @param char* La valeur
  35. * @return Réussite
  36. */
  37. boolean add_data_subdiv(subdiv*, char*, char*, char*);
  38. /**
  39. * Ajoute une donnée déjà formatée sour la forme clef=valeur en mémoire
  40. * @param subdiv* Le gestionnaire de mémoire par subdivision
  41. * @param char* La mémoire
  42. * @param char* La donnée
  43. * @return Réussite
  44. */
  45. boolean add_fdata_subdiv(subdiv*, char*, char*); //add formated data
  46. /**
  47. * Récupère une donnée dans la mémoire
  48. * @param subdiv* Le gestionnaire de mémoire par subdivision
  49. * @param char* La mémoire
  50. * @param char* La clef
  51. * @return Réussite
  52. */
  53. char* get_data_subdiv(subdiv*, char*, char*);
  54. /**
  55. * Supprime une donnée de la mémoire
  56. * @param subdiv* Le gestionnaire de mémoire par subdivision
  57. * @param char* La mémoire
  58. * @param char* La clef
  59. * @return Réussite
  60. */
  61. boolean remove_data_subdiv(subdiv*, char*, char*);
  62. /**
  63. * Affiche la répartition de la mémoire
  64. * @param subdiv* Le gestionnaire de mémoire par subdivision
  65. */
  66. void show_subdiv(subdiv*);
  67. /**
  68. * Affiche toutes les données de la mémoire
  69. * @param subdiv* Le gestionnaire de mémoire par subdivision
  70. * @param char* La mémoire
  71. */
  72. void show_data_subdiv(subdiv*, char*);
  73. #endif