69 lines
2.4 KiB
C
69 lines
2.4 KiB
C
/******************************************************************************
|
|
* @file eml_pipeline_task.h
|
|
* @brief Pipeline d'analyse asynchrone complète pour fichier EML (En-têtes, MIME, OCR, Banque).
|
|
******************************************************************************/
|
|
#ifndef LABFY_INVESTIGATION_EML_PIPELINE_TASK_H
|
|
#define LABFY_INVESTIGATION_EML_PIPELINE_TASK_H
|
|
|
|
#include "core/background_task.h"
|
|
#include "core/bank_proposal.h"
|
|
#include "core/eml_analyzer.h"
|
|
#include "core/eml_mime_extractor.h"
|
|
#include "core/document_file_analysis.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
/** @brief Résultat global d'un pipeline d'analyse EML. */
|
|
typedef struct EmlPipelineResult
|
|
{
|
|
EmlAnalysis *analysis; /**< Analyse des en-têtes EML */
|
|
EmlMimeResult *mime_result; /**< Pièces jointes extraites */
|
|
GPtrArray *bank_proposals; /**< Tableau de BankProposal* */
|
|
GPtrArray *document_analyses; /**< Tableau de DocumentFileAnalysis* */
|
|
GPtrArray *warnings; /**< Avertissements globaux */
|
|
DocumentAnalysisState state;
|
|
guint skipped_document_analyses;
|
|
} EmlPipelineResult;
|
|
|
|
/** @brief Libère un résultat EmlPipelineResult. */
|
|
void eml_pipeline_result_free(EmlPipelineResult *result);
|
|
|
|
/**
|
|
* @brief Crée une nouvelle tâche asynchrone d'analyse EML complète.
|
|
* @param eml_path Chemin du fichier .eml source.
|
|
* @param processed_evidence_dir Dossier racine 02_Preuves_Traitees.
|
|
* @param evidence_id UUID de la preuve EML.
|
|
* @return Nouvelle BackgroundTask, ou NULL.
|
|
*/
|
|
BackgroundTask *eml_pipeline_task_new(const char *eml_path,
|
|
const char *processed_evidence_dir,
|
|
const char *evidence_id);
|
|
|
|
BackgroundTask *eml_pipeline_task_new_with_tools(
|
|
const char *eml_path,
|
|
const char *processed_evidence_dir,
|
|
const char *evidence_id,
|
|
const DocumentAnalysisTools *tools
|
|
);
|
|
|
|
BackgroundTask *eml_pipeline_task_new_with_tools_and_limit(
|
|
const char *eml_path,
|
|
const char *processed_evidence_dir,
|
|
const char *evidence_id,
|
|
const DocumentAnalysisTools *tools,
|
|
guint document_analysis_limit
|
|
);
|
|
|
|
BackgroundTask *eml_pipeline_task_start(
|
|
const char *eml_path,
|
|
const char *staging_directory,
|
|
const char *evidence_id,
|
|
const DocumentAnalysisTools *tools,
|
|
BackgroundTaskCompletionCallback completion_callback,
|
|
gpointer completion_data,
|
|
GDestroyNotify completion_data_destroy
|
|
);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* LABFY_INVESTIGATION_EML_PIPELINE_TASK_H */
|