labfy-investigation/include/database/error.h
2026-07-16 12:41:34 +02:00

71 lines
1.6 KiB
C

/******************************************************************************
* @file error.h
* @brief Gestion des erreurs de la couche Database.
******************************************************************************/
#ifndef LABFY_INVESTIGATION_DATABASE_ERROR_H
#define LABFY_INVESTIGATION_DATABASE_ERROR_H
#include "database/database.h"
/**
* @brief Catégories d'erreurs de la couche Database.
*/
typedef enum
{
DATABASE_ERROR_NONE = 0,
DATABASE_ERROR_INVALID_ARGUMENT,
DATABASE_ERROR_MEMORY,
DATABASE_ERROR_SQLITE,
DATABASE_ERROR_INVALID_STATE
} DatabaseErrorCode;
/**
* @brief Retourne le code de la dernière erreur.
*
* @param database Connexion Database.
*
* @return Code d'erreur, ou DATABASE_ERROR_NONE.
*/
DatabaseErrorCode database_error_get_code(
const Database *database
);
/**
* @brief Retourne le message de la dernière erreur.
*
* Le pointeur retourné appartient à Database et ne doit pas être libéré.
*
* @param database Connexion Database.
*
* @return Message d'erreur, ou NULL.
*/
const char *database_error_get_message(
const Database *database
);
/**
* @brief Enregistre une erreur dans une connexion Database.
*
* Le message est copié par la connexion.
*
* @param database Connexion Database.
* @param error_code Code de l'erreur.
* @param error_message Message descriptif.
*/
void database_error_set(
Database *database,
DatabaseErrorCode error_code,
const char *error_message
);
/**
* @brief Efface la dernière erreur enregistrée.
*
* @param database Connexion Database.
*/
void database_error_clear(
Database *database
);
#endif