129 lines
3.7 KiB
C++
129 lines
3.7 KiB
C++
//=============================================================================
|
|
// 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 */
|