+/**
+ * \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
+ */
+void Debug::SetDebugToFile (bool flag)
+{
+ DebugToFile = flag;
+}
+
+/**
+ * \brief Accessor to know whether debug info are redirected to file
+ */
+bool Debug::GetDebugToFile ()
+{
+ return DebugToFile;
+}
+
+/**
+ * \brief Set the filename the debug stream should be redirect to
+ * Settting a filename also sets DebugToFile to true
+ * @param filename File to redirect debug info
+ * Absolutely nothing is check. You have to pass in
+ * a correct filename
+ */
+void Debug::SetDebugFilename (std::string const &filename)
+{
+ DebugToFile = true; // Just in case ...
+ DebugFlag = true; // Just in case ...
+ if ( DebugFile.is_open() )
+ DebugFile.close();
+ DebugFile.open( filename.c_str() );
+}
+
+/**
+ * \brief Internal use only. Allow us to retrieve the static from anywhere
+ * in gdcm code
+ * @return Debug file
+ */
+std::ofstream &Debug::GetDebugFile ()
+{
+ return DebugFile;
+}