Preserve the local graph-first investigation stack through macro V1. Include reviewed source, tests, contracts, documentation and synthetic assets. Retain the standalone financial V21 test foundation without runtime migration. Runtime remains V20; operational JobStore remains V3. Local experimental checkpoint, not a stable release.
46 lines
1.7 KiB
C
46 lines
1.7 KiB
C
/******************************************************************************
|
|
* @file exiftool_persistence_service.h
|
|
* @brief Publication V20 d'une analyse ExifTool issue du registre J4.
|
|
******************************************************************************/
|
|
#ifndef LABFY_INVESTIGATION_EXIFTOOL_PERSISTENCE_SERVICE_H
|
|
#define LABFY_INVESTIGATION_EXIFTOOL_PERSISTENCE_SERVICE_H
|
|
|
|
#include "core/local_capability_registry.h"
|
|
#include "database/database.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define EXIFTOOL_ARTIFACT_CONTRACT "labfy.exiftool.metadata.derivative.v1"
|
|
#define EXIFTOOL_PERSISTENCE_MAX_SOURCE (16U * 1024U * 1024U)
|
|
|
|
typedef struct ExiftoolPersistenceService ExiftoolPersistenceService;
|
|
typedef struct {
|
|
const char *request_identifier;
|
|
const char *source_evidence_identifier;
|
|
const char *derivative_evidence_identifier;
|
|
const char *requested_at;
|
|
} ExiftoolPersistenceRequest;
|
|
typedef struct {
|
|
char *request_identifier;
|
|
char *derivative_evidence_identifier;
|
|
char *tool_version;
|
|
guint metadata_count;
|
|
gboolean reused;
|
|
char *status;
|
|
} ExiftoolPublicationResult;
|
|
|
|
ExiftoolPersistenceService *exiftool_persistence_service_new(
|
|
Database *database, const char *investigation_root,
|
|
const LocalCapabilityRegistry *registry, GError **error);
|
|
void exiftool_persistence_service_free(ExiftoolPersistenceService *service);
|
|
|
|
/** Exécute via le registre puis publie ; aucun résultat partiel n'est publié. */
|
|
ExiftoolPublicationResult *exiftool_persistence_service_execute(
|
|
ExiftoolPersistenceService *service,
|
|
const ExiftoolPersistenceRequest *request,
|
|
GCancellable *cancellable,
|
|
GError **error);
|
|
void exiftool_publication_result_free(ExiftoolPublicationResult *result);
|
|
|
|
G_END_DECLS
|
|
#endif
|