9 #ifndef __IPDEBUG_HPP__
10 #define __IPDEBUG_HPP__
15 #ifdef COIN_IPOPT_CHECKLEVEL
22 # error "don't have header file for assert"
26 #define COIN_IPOPT_CHECKLEVEL 0
29 #if COIN_IPOPT_CHECKLEVEL > 0
33 # define DBG_ASSERT(test) assert(test)
34 # define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg) \
35 ASSERT_EXCEPTION( (__condition), __except_type, __msg);
36 # define DBG_DO(__cmd) __cmd
38 # define DBG_ASSERT(test)
39 # define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg)
40 # define DBG_DO(__cmd)
43 #ifndef COIN_IPOPT_VERBOSITY
44 #define COIN_IPOPT_VERBOSITY 0
47 #if COIN_IPOPT_VERBOSITY < 1
48 # define DBG_START_FUN(__func_name, __verbose_level)
49 # define DBG_START_METH(__func_name, __verbose_level)
50 # define DBG_PRINT(__printf_args)
51 # define DBG_PRINT_VECTOR(__verbose_level, __vec_name, __vec)
52 # define DBG_PRINT_MATRIX(__verbose_level, __mat_name, __mat)
53 # define DBG_EXEC(__verbosity, __cmd)
54 # define DBG_VERBOSITY() 0
67 class DebugJournalistWrapper
72 DebugJournalistWrapper(std::string func_name,
Index verbose_level);
73 DebugJournalistWrapper(std::string func_name,
Index verbose_level,
74 const void*
const method_owner);
75 ~DebugJournalistWrapper();
82 return verbose_level_;
84 const Journalist* Jnlst()
88 Index IndentationLevel()
90 return indentation_level_;
95 void DebugPrintf(
Index verbosity,
const char* pformat, ...);
100 static void SetJournalist(Journalist* jrnl);
112 DebugJournalistWrapper();
115 DebugJournalistWrapper(
const DebugJournalistWrapper&);
118 DebugJournalistWrapper& operator=(
const DebugJournalistWrapper&);
121 static Index indentation_level_;
122 std::string func_name_;
123 Index verbose_level_;
124 const void* method_owner_;
126 static Journalist* jrnl_;
130 # define DBG_START_FUN(__func_name, __verbose_level) \
131 DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level)); \
133 # define DBG_START_METH(__func_name, __verbose_level) \
134 DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level), this);
136 # define DBG_PRINT(__args) \
137 dbg_jrnl.DebugPrintf __args;
139 # define DBG_EXEC(__verbose_level, __cmd) \
140 if (dbg_jrnl.Verbosity() >= (__verbose_level)) { \
144 # define DBG_VERBOSITY() \
int Index
Type for all incides.