/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/utils/eh_messages.h

Go to the documentation of this file.
00001 #ifndef __EH_MESSAGES_H__
00002 #define __EH_MESSAGES_H__
00003 
00004 #if defined( DISABLE_WATCH_POINTS )
00005 
00006 #define eh_watch_int( val ) {}
00007 #define eh_watch_lng( val ) {}
00008 #define eh_watch_ptr( val ) {}
00009 #define eh_watch_dbl( val ) {}
00010 #define eh_watch_exp( val ) {}
00011 #define eh_watch_str( val ) {}
00012 #define eh_watch_chr( val ) {}
00013 #define eh_watch_dbl_vec( val , l , h ) {}
00014 
00015 #else
00016 
00017 #define eh_watch_int( val )  G_STMT_START { \
00018    fprintf(stderr,                          \
00019            "%s = %d (%s, line %d)\n",       \
00020            #val,                            \
00021            val,                             \
00022            g_basename(__FILE__),            \
00023            __LINE__),                       \
00024    fflush(stderr);               } G_STMT_END
00025 
00026 #define eh_watch_lng( val ) G_STMT_START {  \
00027    fprintf(stderr,                          \
00028            "%s = %ld (%s, line %d)\n",      \
00029            #val,                            \
00030            val,                             \
00031            g_basename(__FILE__),            \
00032            __LINE__),                       \
00033    fflush(stderr);          } G_STMT_END
00034 
00035 #define eh_watch_ptr( val ) G_STMT_START {  \
00036    fprintf(stderr,                          \
00037            "%s = %p (%s, line %d)\n",       \
00038            #val,                            \
00039            val,                             \
00040            g_basename(__FILE__),            \
00041            __LINE__),                       \
00042    fflush(stderr);          } G_STMT_END
00043 
00044 #define eh_watch_dbl( val ) G_STMT_START {  \
00045    if ( fabs(val) < 1e3 && fabs(val)>1e-3 ) \
00046       fprintf(stderr,                       \
00047               "%s = %f (%s, line %d)\n",    \
00048               #val,                         \
00049               val,                          \
00050               g_basename(__FILE__),         \
00051               __LINE__),                    \
00052       fflush(stderr);                       \
00053    else                                     \
00054       eh_watch_exp( val );       } G_STMT_END
00055 
00056 #define eh_watch_exp( val ) G_STMT_START {  \
00057    fprintf(stderr,                          \
00058            "%s = %g (%s, line %d)\n",       \
00059            #val,                            \
00060            val,                             \
00061            g_basename(__FILE__),            \
00062            __LINE__),                       \
00063    fflush(stderr);               } G_STMT_END
00064 
00065 #define eh_watch_str( val ) G_STMT_START {  \
00066    fprintf(stderr,                          \
00067            "%s = %s (%s, line %d)\n",       \
00068            #val,                            \
00069            (val)?(val):"(null)" ,           \
00070            g_basename(__FILE__),            \
00071            __LINE__),                       \
00072    fflush(stderr);               } G_STMT_END
00073 
00074 #define eh_watch_chr( val ) G_STMT_START {  \
00075    fprintf(stderr,                          \
00076            "%s = %f (%s, line %d)\n",       \
00077            #val,                            \
00078            val,                             \
00079            g_basename(__FILE__),            \
00080            __LINE__),                       \
00081    fflush(stderr);               } G_STMT_END
00082 
00083 #define eh_watch_dbl_vec( val , l , h ) G_STMT_START { \
00084    int i;                                              \
00085    for ( i=l ; i<=h ; i++ ) {                          \
00086       fprintf(stderr,                                  \
00087               "%s[%d] = %f (%s, line %d)\n",           \
00088               #val,                                    \
00089               i,                                       \
00090               val[i],                                  \
00091               g_basename(__FILE__),                    \
00092               __LINE__),                               \
00093       fflush(stderr);       }               } G_STMT_END
00094 
00095 #endif
00096 
00097 #if defined( DISABLE_CHECKS )
00098 
00099 #define eh_require( expr ) { }
00100 #define eh_require_msg( expr ) { }
00101 #define eh_require_critical( expr ) { }
00102 #define eh_require_msg_critical( expr ) { }
00103 #define eh_require_not_reached( ) { }
00104 #define eh_make_note( expr ) { (expr); }
00105 #define eh_return_if_fail( expr ) { }
00106 #define eh_return_val_if_fail( expr , val ) { }
00107 
00108 #else
00109 
00110 #define eh_require( expr )                                            \
00111    if ( !(expr) ) {                                                   \
00112       fprintf( stderr ,                                               \
00113                "%s : line %d : requirement failed : (%s)\n" ,         \
00114                g_basename(__FILE__),                                  \
00115                __LINE__,                                              \
00116                #expr ),                                               \
00117       fflush( stderr ); } else
00118 
00119 #define eh_require_msg( expr , msg )                                  \
00120    if ( !(expr) ) {                                                   \
00121       fprintf( stderr ,                                               \
00122                "%s : line %d : requirement (%s) failed : (%s)\n" ,    \
00123                g_basename(__FILE__),                                  \
00124                __LINE__,                                              \
00125                (msg)?(msg):"NULL" ,                                   \
00126                #expr ),                                               \
00127       fflush( stderr ); } else
00128 /*
00129 #define eh_require( expr ) {                                          \
00130    if ( expr ) { } else {                                             \
00131       fprintf( stderr ,                                               \
00132                "%s : line %d : check failed : (%s)\n" ,               \
00133                g_basename(__FILE__),                                  \
00134                __LINE__,                                              \
00135                #expr ),                                               \
00136       fflush( stderr ); }  }
00137 */
00138 
00139 #define eh_require_msg_critical( expr , msg )                         \
00140    if ( !(expr) ) { eh_require_msg( expr , msg ); eh_exit(-1); } else
00141 
00142 #define eh_require_critical( expr )                                   \
00143    if ( !(expr) ) { eh_require( expr ); eh_exit(-1); } else
00144 
00145 #define eh_require_not_reached( ) {                                   \
00146    fprintf( stderr ,                                                  \
00147             "%s : line %d : should not be reached\n" ,                \
00148             g_basename(__FILE__) ,                                    \
00149             __LINE__ ),                                               \
00150    fflush( stderr ); }
00151 
00152 #define eh_make_note( expr ) {                                        \
00153    (expr),                                                            \
00154    fprintf( stderr ,                                                  \
00155             "%s : line %d : %s\n" ,                                   \
00156             g_basename(__FILE__) ,                                    \
00157             __LINE__ ,                                                \
00158             #expr ),                                                  \
00159    fflush( stderr ); }
00160 
00161 #define eh_note_block( msg , expr )                                   \
00162    if ( (expr) )                                                      \
00163    {                                                                  \
00164       gchar* base_name = g_path_get_basename(__FILE__);               \
00165       eh_debug(                                                       \
00166                "%s : line %d : %s\n" ,                                \
00167                base_name ,                                            \
00168                __LINE__,                                              \
00169                (msg)?(msg):"NULL" ) ,                                 \
00170       eh_free( base_name );                                           \
00171       fflush( stderr );                                               \
00172    }                                                                  \
00173    if ( !(expr) ) {} else
00174 
00175 #define eh_return_val_if_fail( expr , val ) if ( !(expr) ) { return (val); } else
00176 #define eh_return_if_fail( expr ) if ( !(expr) ) { return; } else
00177 
00178 #endif /* disable checks */
00179 
00180 #endif /* eh_messages.h */

Generated on Fri Jan 4 18:04:16 2008 for sedflux by  doxygen 1.5.2