/* * The Unix Channel * * by Michel Beaudouin-Lafon * * Copyright 1990-1993 * Laboratoire de Recherche en Informatique (LRI) * * Error management * * $Id$ * $CurLog$ */ #ifndef UchError_H_ #define UchError_H_ #include "global.h" #ifdef DOC // fake class for global functions class UchError { }; #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 /* UchError_H_ */