/**
 @file error.h
 @brief Management of errors.
 @author CLS
 */
#include "fes_int.h"

#ifndef _ERROR_H
#define _ERROR_H

/**
 @fn set_fes_error(fes_handler* const fes,
 const fes_enum_error errcode)

 Set the internal error message to fes handler

 @param fes        FES handler
 @param errcode    Error code
 */

void set_fes_error(fes_handler* const fes, const fes_enum_error errcode);

/**
 @fn set_fes_extended_error(fes_handler* const fes,
 const fes_enum_error errcode,
 const char* format, ...)

 Set the internal error message to fes handler

 @param fes        FES handler
 @param errcode    Error code
 @param format     Error message template, in sprintf format
 */
void set_fes_extended_error(
        fes_handler* const fes,
        const fes_enum_error errcode,
        const char* format,
        ...);

/**
 @fn fes_clear_error(fes_handler* const fes)

 @brief Clear possible error state of struct FES

 @param fes  clear the state of the argument
 */
void fes_clear_error(fes_handler* const fes);

#endif
