You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							90 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							90 lines
						
					
					
						
							2.7 KiB
						
					
					
				
								//=============================================================================
							 | 
						|
								// 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 */
							 |