Add initial FnixLib development implementation
This commit is contained in:
commit
84742ae38e
33 files changed
+3340
No files matched your search
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* FnixLib - manejo de errores.
|
||||
*
|
||||
* Convención general de la API:
|
||||
* - Las funciones que crean un objeto devuelven un puntero; NULL indica fallo.
|
||||
* - Las funciones de consulta no fallan: con un puntero NULL o un argumento
|
||||
* fuera de rango devuelven 0 / false.
|
||||
* - Cuando algo falla, FnixLib guarda un código y un mensaje legibles
|
||||
* (por hilo), que se consultan con fnix_last_error_code() y
|
||||
* fnix_last_error(). Un éxito NO borra el último error (como errno).
|
||||
*/
|
||||
#ifndef FNIX_ERRORS_H
|
||||
#define FNIX_ERRORS_H
|
||||
|
||||
#include "fnix/types.h"
|
||||
|
||||
FNIX_BEGIN_DECLS
|
||||
|
||||
typedef enum FnixError {
|
||||
FNIX_OK = 0,
|
||||
FNIX_ERROR_INVALID_ARGUMENT, /* argumento nulo o fuera de rango */
|
||||
FNIX_ERROR_OUT_OF_MEMORY, /* no se pudo reservar memoria */
|
||||
FNIX_ERROR_PLATFORM, /* fallo del sistema (pantalla, ventana) */
|
||||
FNIX_ERROR_UNSUPPORTED /* el sistema no ofrece lo que se necesita */
|
||||
} FnixError;
|
||||
|
||||
/* Descripción corta y fija de un código. Nunca devuelve NULL. */
|
||||
const char *fnix_error_string(FnixError error);
|
||||
|
||||
/* Código del último error ocurrido en este hilo (FNIX_OK si no hubo ninguno). */
|
||||
FnixError fnix_last_error_code(void);
|
||||
|
||||
/* Mensaje detallado del último error. Nunca devuelve NULL; es "" si no hubo
|
||||
* errores. El puntero es válido hasta el siguiente error en este hilo. */
|
||||
const char *fnix_last_error(void);
|
||||
|
||||
/* Olvida el último error de este hilo. */
|
||||
void fnix_clear_error(void);
|
||||
|
||||
FNIX_END_DECLS
|
||||
|
||||
#endif /* FNIX_ERRORS_H */
|
||||
Reference in new issue
Block a user