]> Creatis software - gdcm.git/commitdiff
Flags Debug and Warning may be used separately.
authorjpr <jpr>
Sat, 5 Nov 2005 13:21:32 +0000 (13:21 +0000)
committerjpr <jpr>
Sat, 5 Nov 2005 13:21:32 +0000 (13:21 +0000)
--> Setting on Debug sets also Warning
--> Setting off Warning is applied only if Debug is off.
Note :
Debug On :   Developer wants to track a missbehaviour in gdcm
Warning on : User wants to be warned about oddities in the files.

src/gdcmDebug.cxx
src/gdcmDebug.h

index d9a56182e30bb7fcb0ff5bb45e77f96f129570ae..ba0a2fa49c9915ae31dccb0620c54c8ddabdef95 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDebug.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/06/24 10:55:58 $
-  Version:   $Revision: 1.25 $
+  Date:      $Date: 2005/11/05 13:21:32 $
+  Version:   $Revision: 1.26 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -23,8 +23,9 @@ namespace gdcm
 {
 //-----------------------------------------------------------------------------
 // Warning message level to be displayed
-static bool DebugFlag   = false;
-static bool DebugToFile = false;
+static bool DebugFlag     = false;
+static bool WarningFlag   = false;
+static bool DebugToFile   = false;
 static std::ofstream DebugFile;
 
 //-----------------------------------------------------------------------------
@@ -43,16 +44,20 @@ Debug::~Debug()
 //-----------------------------------------------------------------------------
 // Public
 /**
- * \brief   Sets the debug flag
- * @param   flag Set the debug flag
+ * \brief   Sets both the debug flag and warning flag
+ *          (both used for debugging purpose)
+ * @param   flag Set the debug flag and warning flag
  */ 
 void Debug::SetDebugFlag (bool flag) 
 {
-   DebugFlag = flag;
+   // To help tracking a bug, both flags are necessary
+   DebugFlag   = flag;
+   WarningFlag = flag;
 }
 
 /**
  * \brief   Gets the debug flag value
+ *          (used to warn user when file contains some oddity)
  * @return debug flag value
  */ 
 bool Debug::GetDebugFlag ()
@@ -60,6 +65,26 @@ bool Debug::GetDebugFlag ()
    return DebugFlag;
 }
 
+/**
+ * \brief   Sets the warning flag
+ * @param   flag Set the warning flag
+ */ 
+void Debug::SetWarningFlag (bool flag) 
+{
+   // Cannot unset Warning flag if Debug flag is on.
+   if (flag == false && DebugFlag == true)
+      return;
+   WarningFlag = flag;
+}
+
+/**
+ * \brief   Gets the warning flag value
+ * @return warning flag value
+ */ 
+bool Debug::GetWarningFlag ()
+{
+   return WarningFlag;
+}
 /**
  * \brief   Accessor
  * @param   flag whether we want to redirect to file
index 9cb71d6fd5119bf56d3f4f39236bcdfc388eb0e3..df9e02f831f4d412b1b43a710ae4c2454e46715a 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDebug.h,v $
   Language:  C++
-  Date:      $Date: 2005/10/27 09:12:20 $
-  Version:   $Revision: 1.46 $
+  Date:      $Date: 2005/11/05 13:21:32 $
+  Version:   $Revision: 1.47 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -51,14 +51,23 @@ public:
    Debug();
    ~Debug();
 
-   /// \brief This is a global flag that controls whether any debug, warning
-   ///        messages are displayed.
+   /// \brief This is a global flag that controls whether 
+   ///        both debug and warning messages are displayed. 
    static void SetDebugFlag (bool flag);
    static bool GetDebugFlag ();
    /// \brief Sets the Debug Flag to true
    static void DebugOn  () { SetDebugFlag(true);  }
    /// \brief Sets the Debug Flag to false
    static void DebugOff () { SetDebugFlag(false); }
+   
+   /// \brief This is a global flag that controls whether 
+   ///        warning messages are displayed.
+   static void SetWarningFlag (bool flag);
+   static bool GetWarningFlag ();
+   /// \brief Sets the Warning Flag to true
+   static void WarningOn  () { SetWarningFlag(true);  }
+   /// \brief Sets the Warning Flag to false
+   static void WarningOff () { SetWarningFlag(false); }   
 
    /// \brief This is a global flag that controls if debug are redirected
    ///        to a file or not
@@ -133,7 +142,7 @@ public:
 #else
 #define gdcmWarningMacro(msg)                               \
 {                                                           \
-   if( Debug::GetDebugFlag() )                              \
+   if( Debug::GetWarningFlag() )                            \
    {                                                        \
    std::ostringstream osmacro;                              \
    osmacro << "Warning: In " __FILE__ ", line " << __LINE__ \