Ajouter les relations parent/enfants à InvestigationNode.
#9
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Titre
Ajouter les relations parent/enfants à
InvestigationNode.Objectif
Faire évoluer
InvestigationNodeafin qu'un nœud puisse appartenir à une arborescence.Chaque nœud pourra :
Responsabilités
Le module
InvestigationNodedoit :Hors périmètre
Ce ticket ne doit pas :
Architecture
Le module appartient à la couche
core.Il peut dépendre de GLib, mais jamais de GTK.
Gestion de la propriété
Un nœud devient propriétaire de chaque enfant ajouté avec :
Après un ajout réussi :
parentpossèdechild;childdirectement ;childconserve une référence non propriétaire versparent.Lors de la destruction du parent, tous ses enfants sont détruits récursivement.
Structure interne attendue
La structure reste privée dans
investigation_node.c.Interface publique attendue
Les fonctions existantes sont conservées :
Les fonctions suivantes sont ajoutées :
Comportement attendu
Exemple :
Après l'ajout :
Le nœud
rootdevient propriétaire dechild.Le nettoyage correct est uniquement :
Règles d'ajout
investigation_node_add_child()doit refuser :NULL;NULL;En cas d'échec, la propriété de l'enfant reste au code appelant.
Dépendances
Aucune dépendance GTK ou SQLite.
Contraintes techniques
GPtrArray;Critères d'acceptation
NULL.Tests
NULL;NULL;NULL.Commit attendu