|  | //============================================================================= | 
|  | // 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 */ |