/* * Ivy League * * Error management * * Copyright 1990-2000 * Laboratoire de Recherche en Informatique (LRI) * Centre d'Etudes de la Navigation Aerienne (CENA) * * original code by Michel Beaudouin-Lafon, * maintained by Stephane Chatty * * $Id$ * */ #ifndef IvlError_H_ #define IvlError_H_ #include "cplus_bugs.h" #include "ivl/bool.h" #ifdef DOC // fake class for global functions class IvlError { }; #endif enum errtype { ErrNone = -4, // do nothing ErrLog = -3, // only log to file ErrWarn = -2, // warn and continue ErrAbort = -1, // call abort ErrExit = 0, // exit with code 0 ErrUsage = 1, // bad usage ErrFatal = 2 // exit with code != 0 }; enum errcode { ErrShouldImplement }; extern char *ErrorTable []; typedef errtype (*ErrorHandler) (errtype, const char* who, const char* what, const char* msg); typedef void (*CleanUpProc) (); extern void ProgramName (const char*); extern void LogfileName (const char*, bool = false); extern void CleanUp (CleanUpProc); extern ErrorHandler SetErrorHandler (ErrorHandler); extern void Error (errtype, const char* who, const char* what); extern bool SysError (errtype, const char* who, int exc1 = -1, int exc2 = -1); extern char* MakeErrorString (errtype, const char* who, const char* what); extern void LogMessage (const char*); extern int errno; #endif /* IvlError_H_ */