#ifndef __CHECKS_H #define __CHECKS_H #ifndef __STDTYPES_H #include #endif #ifdef __cplusplus extern "C" { #endif bool message_box(const char* fmt, ...); bool warning_box(const char* fmt, ...); bool sorry_box(const char* fmt, ...); bool error_box(const char* fmt, ...); bool fatal_box(const char* fmt, ...); bool noyes_box(const char* fmt, ...); int noyesall_box(const char* fmt, ...); bool yesno_box(const char* fmt, ...); int yesnoall_box(const char* fmt, ...); int yesnocancel_box(const char* fmt, ...); bool yesnofatal_box(const char* fmt, ...); bool cantread_box(const char* filename); bool cantwrite_box(const char* filename); bool __trace(const char* fmt, ...); bool __tracemem(const char* fmt); #ifdef __cplusplus } #endif // Utilizzate in fase di debug (definire il simbolo DBG in compilazione) // @doc EXTERNAL #ifdef DBG // @msg CHECK | Macro che richiama una per stampare messaggi a video #define CHECK(p, m) ( (p) ? (void)0 : (void) fatal_box( \ "Check failed in %s, line %d:\n\r%s", \ __FILE__, __LINE__, m) ) // @parm | p | Condizione per la stampa del messaggio (stampa se FALSE) // @parm | m | Messaggio da stampare // // @comm Viene richiamata se

e' FALSE. // Utilizzata in fase di debug (definire il simbolo DBG in compilazione). // // @xref // @doc EXTERNAL // @msg CHECKS | Macro che richiama una per stampare messaggi a video #define CHECKS(p, m, s0) ( (p) ? (void)0 : (void) fatal_box( \ "Check failed in %s, line %d:\n\r%s%s", \ __FILE__, __LINE__, m, s0) ) // @parm | p | Condizione per la stampa del messaggio (stampa se FALSE) // @parm | m | Messaggio da stampare // @parm | s0 | Stringa aggiuntiva da stampare // // @comm Viene richiamata se

e' FALSE. Oltre al messaggio passato in

// stampa anche una strina aggiuntiva passata in

. // Utilizzata in fase di debug (definire il simbolo DBG in compilazione). // // @xref // @doc EXTERNAL // @msg CHECKD | Macro che richiama una per stampare messaggi a video #define CHECKD(p, m, d0) ( (p) ? (void)0 : (void) fatal_box( \ "Check failed in %s, line %d:\n%s%d", \ __FILE__, __LINE__, m, d0) ) // @parm | p | Condizione per la stampa del messaggio (stampa se FALSE) // @parm | m | Messaggio da stampare // @parm | d0 | Stringa aggiuntiva da stampare // // @comm Viene richiamata se

e' FALSE. Oltre al messaggio passato in

// stampa anche un numero passato in

. // Utilizzata in fase di debug (definire il simbolo DBG in compilazione). // // @xref // @doc EXTERNAL // @msg CHECKD | Macro che richiama una per stampare messaggi d'errore a video #define NFCHECK yesnofatal_box // @xref #else #define CHECK(p, m) #define CHECKS(p, m, s) #define CHECKD(p, m, d) #define NFCHECK 1 ? 0 : yesnofatal_box #endif // Utilizzata in fase di debug (definire il simbolo TRC in compilazione) #ifdef TRC // @doc EXTERNAL // @msg TRACE | Macro che richiama la funzione #define TRACE __trace #define TRACEMEM(msg) __tracemem(msg) #else #define TRACE 1 ? 0 : __trace #define TRACEMEM(msg) 0 #endif #endif // __CHECKS_H