57 lines
1.2 KiB
Markdown
57 lines
1.2 KiB
Markdown
# Ticket #003
|
|
|
|
## Titre
|
|
|
|
Créer le module `Investigation`.
|
|
|
|
## Objectif
|
|
|
|
Créer l'objet métier représentant une enquête ouverte par Labfy Investigation.
|
|
|
|
Le module doit rester indépendant de GTK et de l'interface graphique.
|
|
|
|
## Responsabilités
|
|
|
|
Le module doit :
|
|
|
|
- mémoriser le chemin racine de l'enquête ;
|
|
- construire le chemin de la base de données modèle ;
|
|
- exposer ces chemins en lecture seule ;
|
|
- gérer proprement sa mémoire ;
|
|
- vérifier qu'un chemin d'enquête est exploitable.
|
|
|
|
## Hors périmètre
|
|
|
|
Ce ticket ne doit pas :
|
|
|
|
- ouvrir SQLite ;
|
|
- créer la base de données ;
|
|
- modifier l'arborescence de l'enquête ;
|
|
- afficher de message GTK ;
|
|
- gérer les preuves ou les entités.
|
|
|
|
## Dépendances
|
|
|
|
- libc ;
|
|
- GLib uniquement si nécessaire pour la gestion des chaînes et chemins.
|
|
|
|
Aucune dépendance GTK ou SQLite.
|
|
|
|
## API attendue
|
|
|
|
Le module doit permettre un usage proche de :
|
|
|
|
```c
|
|
Investigation *investigation = NULL;
|
|
|
|
investigation = investigation_new("/chemin/vers/enquete");
|
|
|
|
if (investigation == NULL)
|
|
{
|
|
/* Gestion de l'erreur */
|
|
}
|
|
|
|
const char *root_path = investigation_get_root_path(investigation);
|
|
const char *database_path = investigation_get_database_path(investigation);
|
|
|
|
investigation_free(investigation);
|