| //============================================================================= | |
| // File : utilities.h | |
| // Created : mar jun 19 13:18:14 CEST 2001 | |
| // Author : Antoine YESSAYAN, Paul RASCLE, EDF | |
| // Project : SALOME | |
| // Copyright : EDF 2001 | |
| // $Header$ | |
| //============================================================================= | |
| /* --- Definition macros file to print information if _DEBUG_ is defined --- */ | |
| # ifndef UTILITIES_H | |
| # define UTILITIES_H | |
| # include <stdlib.h> | |
| //# include <iostream> ok for gcc3.01 | |
| # include <iostream> | |
| /* --- INFOS is always defined (without _DEBUG_): to be used for warnings, with release version --- */ | |
| # define HEREWEARE cout<<flush ; cerr << __FILE__ << " [" << __LINE__ << "] : " << flush ; | |
| # define INFOS(chain) {HEREWEARE ; cerr << chain << endl ;} | |
| # define PYSCRIPT(chain) {cout<<flush ; cerr << "---PYSCRIPT--- " << chain << endl ;} | |
| /* --- To print date and time of compilation of current source on stdout --- */ | |
| # if defined ( __GNUC__ ) | |
| # define COMPILER "g++" ; | |
| # elif defined ( __sun ) | |
| # define COMPILER "CC" ; | |
| # elif defined ( __KCC ) | |
| # define COMPILER "KCC" ; | |
| # elif defined ( __PGI ) | |
| # define COMPILER "pgCC" ; | |
| # else | |
| # define COMPILER "undefined" ; | |
| # endif | |
| # ifdef INFOS_COMPILATION | |
| # error INFOS_COMPILATION already defined | |
| # endif | |
| # define INFOS_COMPILATION {\ | |
| cerr << flush;\ | |
| cout << __FILE__ ;\ | |
| cout << " [" << __LINE__ << "] : " ;\ | |
| cout << "COMPILED with " << COMPILER ;\ | |
| cout << ", " << __DATE__ ; \ | |
| cout << " at " << __TIME__ << endl ;\ | |
| cout << "\n\n" ;\ | |
| cout << flush ;\ | |
| } | |
| # ifdef _DEBUG_ | |
| /* --- the following MACROS are useful at debug time --- */ | |
| # define HERE cout<<flush ; cerr << "- Trace " << __FILE__ << " [" << __LINE__ << "] : " << flush ; | |
| # define SCRUTE(var) HERE ; cerr << #var << "=" << var << endl ; | |
| # define MESSAGE(chain) {HERE ; cerr << chain << endl ;} | |
| # define INTERRUPTION(code) HERE ; cerr << "INTERRUPTION return code= " << code << endl ; exit(code) ; | |
| # ifndef ASSERT | |
| # define ASSERT(condition) if (!(condition)){ HERE ; cerr << "CONDITION " << #condition << " NOT VERIFIED"<< endl ; INTERRUPTION(1) ;} | |
| # endif /* ASSERT */ | |
| #define REPERE cout<<flush ; cerr << " --------------" << endl << flush ; | |
| #define BEGIN_OF(chain) {REPERE ; HERE ; cerr << "Begin of: " << chain << endl ; REPERE ; } | |
| #define END_OF(chain) {REPERE ; HERE ; cerr << "Normal end of: " << chain << endl ; REPERE ; } | |
| # else /* ifdef _DEBUG_*/ | |
| # define HERE | |
| # define SCRUTE(var) | |
| # define MESSAGE(chain) | |
| # define INTERRUPTION(code) | |
| # ifndef ASSERT | |
| # define ASSERT(condition) | |
| # endif /* ASSERT */ | |
| #define REPERE | |
| #define BEGIN_OF(chain) | |
| #define END_OF(chain) | |
| # endif /* ifdef _DEBUG_*/ | |
| # endif /* ifndef UTILITIES_H */ |