60 lines
1.8 KiB
C
60 lines
1.8 KiB
C
/******************************************************************************
|
|
* @file investigation_tree_model.h
|
|
* @brief Interface publique du modèle d'arborescence d'une enquête.
|
|
******************************************************************************/
|
|
|
|
#ifndef LABFY_INVESTIGATION_INVESTIGATION_TREE_MODEL_H
|
|
#define LABFY_INVESTIGATION_INVESTIGATION_TREE_MODEL_H
|
|
|
|
#include "core/investigation_node.h"
|
|
|
|
/**
|
|
* @brief Représentation opaque du modèle d'arborescence.
|
|
*
|
|
* La structure réelle est définie dans investigation_tree_model.c.
|
|
* Les autres modules manipulent uniquement un pointeur vers
|
|
* InvestigationTreeModel.
|
|
*/
|
|
typedef struct InvestigationTreeModel InvestigationTreeModel;
|
|
|
|
/**
|
|
* @brief Crée un nouveau modèle d'arborescence.
|
|
*
|
|
* Le modèle devient propriétaire de root_node après cet appel.
|
|
* Le code appelant ne doit donc plus libérer root_node directement.
|
|
*
|
|
* @param root_node Nœud racine transféré au modèle.
|
|
*
|
|
* @return Un nouveau modèle, ou NULL si root_node vaut NULL
|
|
* ou si la création échoue.
|
|
*/
|
|
InvestigationTreeModel *investigation_tree_model_new(
|
|
InvestigationNode *root_node
|
|
);
|
|
|
|
/**
|
|
* @brief Libère le modèle et le nœud racine qu'il possède.
|
|
*
|
|
* Cette fonction accepte NULL.
|
|
*
|
|
* @param tree_model Modèle à libérer.
|
|
*/
|
|
void investigation_tree_model_free(
|
|
InvestigationTreeModel *tree_model
|
|
);
|
|
|
|
/**
|
|
* @brief Retourne le nœud racine du modèle.
|
|
*
|
|
* Le pointeur retourné appartient toujours au modèle.
|
|
* Il ne doit être ni modifié ni libéré par le code appelant.
|
|
*
|
|
* @param tree_model Modèle à consulter.
|
|
*
|
|
* @return Nœud racine en lecture seule, ou NULL si tree_model vaut NULL.
|
|
*/
|
|
const InvestigationNode *investigation_tree_model_get_root(
|
|
const InvestigationTreeModel *tree_model
|
|
);
|
|
|
|
#endif
|