Sam 23/03/2013 - Actualités

Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Sam 23/03/2013 - Actualités

Message non lu par Xavier »

Gestion des alarmes


Modèle

Les alarmes sont donc gérées comme des objets à part des évènements.
Afin de ne pas avoir à les chercher au fin fond de l'arborescence, elles sont stockées dans un dossier technique (invisible pour l'utilisateur), directement à la racine de l'outil. L'absence de hiérarchie entre un évènement et son alarme est compensée par l'utilisation d'identifiants uniques, chaque objet référençant l'autre.
Afin de gérer le futur cryptage qui sera activable par dossier, le titre de l'évènement est recopié sur l'alarme. Les alarmes ne seront pas cryptables, il sera donc possible de les déclencher même si l'évènement associé est crypté.
Il sera possible d'ouvrir un évènement à partir de son alarme. Pour le moment, la recherche de l'évènement se fait dans toute l'arborescence, il faudra sans doute stocker sur l'alarme le chemin de l'évènement, mais cela obligera à le modifier lors d'un déplacement d'évènement. Ce sera donc à revoir si la recherche sur des gros volumes génère du lag.


Implémentation

Le système repose entièrement sur un service Manage_Alarm qui concentre la totalité du code de gestion :
  • Analyse de l'évènement passé en paramètre.
  • Si l'évènement est avec alarme : recherche du dossier technique, création si échec, recherche de l'alarme (en cas de modification), création si besoin, récupération des données d'alarme de l'évènement, calcul du moment de l'alarme, stockage des données, référencement des deux objets.
  • Si l'évènement est sans alarme, déférencement si besoin, suppression de l'alarme si elle existe, suppression du dossier technique s'il est vide.
Une surcharge du service de suppression des objets permet de rechercher et d'effacer les alarmes liées lors de la suppression d'un dossier entier. Moyennement élégant mais efficace.


Résultat

La programmation de l'évènement :
Prog.png
L'évènement rangé dans son index de semaine et l'alarme rangée dans son dossier technique, les deux se référençant à l'aide d'UIDs :
Data.png
Prochaines étapes

La page Alarmes de l'outil va d'abord être implémentée, sa liste devant permettre de contrôler les données créées plus rapidement que via l'XML.
Il restera ensuite à gérer les cas "délicats" : trouver tous les endroits où le service Manage_Alarm doit être branché, avec au moins :
  • Lors de la copie d'un évènement ou d'un dossier.
  • Lors de l'instanciation / la désinstanciation d'un évènement répétitif.
Plus tard viendront le déclenchement des alarmes et leur rappel.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Répondre