snmp_assert.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:1k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #ifndef SNMP_ASSERT_H
  2. #define SNMP_ASSERT_H
  3. #ifdef NETSNMP_USE_ASSERT
  4. #   include <assert.h>
  5. #else
  6. #   include <net-snmp/library/snmp_logging.h>
  7. #endif
  8. /*
  9.  * MACROs don't need extern "C"
  10.  */
  11. /*
  12.  * define __STRING for systems (*cough* sun *cough*) that don't have it
  13.  */
  14. #ifndef __STRING
  15. #  ifdef __STDC__
  16. #    define __STRING(x) #x
  17. #  else
  18. #    define __STRING(x) "x"
  19. #  endif /* __STDC__ */
  20. #endif /* __STRING */
  21. /*
  22.  * always use assert if requested
  23.  */
  24. #ifdef NETSNMP_USE_ASSERT
  25. /*   void netsnmp_assert( int );*/
  26. #   define netsnmp_assert(x)  assert( x )
  27. #else
  28. /*
  29.  *  if asserts weren't requested, just log, unless SNMP_NO_DEBUGGING specified
  30.  */
  31. #   ifndef SNMP_NO_DEBUGGING
  32. #      ifdef  HAVE_CPP_UNDERBAR_FUNCTION_DEFINED
  33. #         define netsnmp_assert(x)  do { 
  34.                  if ( x ) 
  35.                     ; 
  36.                  else 
  37.                     snmp_log(LOG_ERR,"netsnmp_assert %s failed %s:%d %s()n", 
  38.                              __STRING(x),__FILE__,__LINE__,__FUNCTION__); 
  39.               }while(0)
  40. #      else
  41. #         define netsnmp_assert(x)  do { 
  42.                  if( x )
  43.                     ; 
  44.                  else 
  45.                     snmp_log(LOG_ERR,"netsnmp_assert %s failed %s:%dn", 
  46.                              __STRING(x),__FILE__,__LINE__); 
  47.               }while(0)
  48. #      endif
  49. #   else /* NO DEBUGGING */
  50. #      define netsnmp_assert(x)
  51. #   endif /* NO DEBUGGING */
  52. #endif /* not NETSNMP_USE_ASSERT */
  53. #endif /* SNMP_ASSERT_H */