src/hugo/debug.h
author alpar
Sun, 19 Sep 2004 12:24:48 +0000
changeset 881 a9f19f38970b
permissions -rw-r--r--
Right (but still too short) documentation of the namespaces.
     1 // -*- C++ -*- //
     2 
     3 #ifndef HUGO_DEBUG_H
     4 #define HUGO_DEBUG_H
     5 
     6 //! \file
     7 //! \brief Basic definitions for debug control.
     8 
     9 namespace hugo {
    10 
    11   //! Debug mode for testing/debugging
    12 
    13   //! Use this debug mode if you want exhaustive range and consistency checks.
    14   //! It also produces verbose debug messages.
    15   struct DebugOn {
    16     //! Example: check whether the edges added to a path are adjacent
    17     static const bool consistensy_check = true;
    18 
    19     static const bool range_check = true;
    20 
    21     //! Examples: initialize maps with some value;
    22     //! after deleting an item from UnionFindEnum set its value in the
    23     //! corresponding map to NULL...
    24     static const bool ensure_safe_state = true;
    25 
    26     static const int verbose = 5;
    27   };
    28 
    29   //! Debug mode for turning off debug aids.
    30 
    31   //! This debud mode switches off all range and consistency checks,
    32   //! as well as the debug messages.
    33   //!
    34   struct DebugOff {
    35     static const bool consistensy_check = false;
    36     static const bool range_check = false;
    37     static const bool ensure_safe_state = false;
    38     static const int verbose = 0;
    39   };
    40 
    41 #ifdef DEBUG
    42   //! The default debug mode.
    43 
    44   //! The default debug mode.
    45   //!
    46   typedef DebugOn DefaultDebugMode;
    47 #else
    48   //! The default debug mode. 
    49 
    50   //! The default debug mode. 
    51   //!
    52   typedef DebugOff DefaultDebugMode;
    53 #endif
    54 
    55 }
    56 #endif // HUGO_DEBUG_H