Salome HOME
Merging with the MAN_SALOME2 branch
[modules/med.git] / src / MEDMEM / MEDMEM_Utilities.hxx
1 #ifdef _SALOME\r
2 \r
3 #  include <utilities.h>\r
4 \r
5 #else\r
6 \r
7 #ifndef __MEDMEM_UTILITIES\r
8 #define __MEDMEM_UTILITIES\r
9 \r
10 #  include <cstdlib>\r
11 #  include <iostream>\r
12 using namespace std;\r
13 \r
14 /* ---  INFOS is always defined (without _DEBUG_): to be used for warnings, with release version --- */\r
15 \r
16 # define HEREWEARE {cout<<flush ; cerr << __FILE__ << " [" << __LINE__ << "] : " << flush ;}\r
17 # define INFOS(chain) {HEREWEARE ; cerr << chain << endl ;}\r
18 # define PYSCRIPT(chain) {cout<<flush ; cerr << "---PYSCRIPT--- " << chain << endl ;}\r
19 \r
20 \r
21 /* --- To print date and time of compilation of current source on stdout --- */\r
22 \r
23 # if defined ( __GNUC__ )\r
24 # define COMPILER               "g++" ;\r
25 # elif defined ( __sun )\r
26 # define COMPILER               "CC" ;\r
27 # elif defined ( __KCC )\r
28 # define COMPILER               "KCC" ;\r
29 # elif defined ( __PGI )\r
30 # define COMPILER               "pgCC" ;\r
31 # else\r
32 # define COMPILER               "undefined" ;\r
33 # endif\r
34 \r
35 # ifdef INFOS_COMPILATION\r
36 # undef INFOS_COMPILATION\r
37 # endif\r
38 # define INFOS_COMPILATION      {\\r
39                                         cerr << flush;\\r
40                                         cout << __FILE__ ;\\r
41                                         cout << " [" << __LINE__ << "] : " ;\\r
42                                         cout << "COMPILED with " << COMPILER ;\\r
43                                         cout << ", " << __DATE__ ; \\r
44                                         cout << " at " << __TIME__ << endl ;\\r
45                                         cout << "\n\n" ;\\r
46                                         cout << flush ;\\r
47                                 }\r
48 \r
49 # ifdef _DEBUG_\r
50 \r
51 /* --- the following MACROS are useful at debug time --- */\r
52 \r
53 # define HERE {cout<<flush ; cerr << "- Trace " << __FILE__ << " [" << __LINE__ << "] : " << flush ;}\r
54 # define SCRUTE(var) {HERE ; cerr << #var << "=" << var << endl ;}\r
55 # define MESSAGE(chain) {HERE ; cerr << chain << endl ;}\r
56 # define INTERRUPTION(code) {HERE ; cerr << "INTERRUPTION return code= " << code << endl ; exit(code) ;}\r
57 \r
58 # ifndef ASSERT\r
59 # define ASSERT(condition) if (!(condition)){ HERE ; cerr << "CONDITION " << #condition << " NOT VERIFIED"<< endl ; INTERRUPTION(1) ;}\r
60 # endif /* ASSERT */\r
61 \r
62 #define REPERE {cout<<flush ; cerr << "   --------------" << endl << flush ;}\r
63 #define BEGIN_OF(chain) {REPERE ; HERE ; cerr << "Begin of: " << chain << endl ; REPERE ; }\r
64 #define END_OF(chain) {REPERE ; HERE ; cerr << "Normal end of: " << chain << endl ; REPERE ; }\r
65 \r
66 \r
67 \r
68 # else /* ifdef _DEBUG_*/\r
69 \r
70 # define HERE\r
71 # define SCRUTE(var) {}\r
72 # define MESSAGE(chain) {}\r
73 # define INTERRUPTION(code) {}\r
74 \r
75 # ifndef ASSERT\r
76 # define ASSERT(condition) {}\r
77 # endif /* ASSERT */\r
78 \r
79 #define REPERE\r
80 #define BEGIN_OF(chain) {}\r
81 #define END_OF(chain) {}\r
82 \r
83 #endif\r
84 \r
85 #endif\r
86 #endif\r