]> Creatis software - clitk.git/blobdiff - common/clitkFilterBase.cxx
Remove itkMultiThreader dependency because it does not exist with ITK5
[clitk.git] / common / clitkFilterBase.cxx
index 2b427202040f21f827a9ff113b1cb60407044687..f6bebad101072e7d8ed40fe62b710f962e802f1f 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to: 
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-  ======================================================================-====*/
+  ===========================================================================**/
 
 // clitk
 #include "clitkFilterBase.h"
+#include "clitkCommon.h"
 
 //--------------------------------------------------------------------
 clitk::FilterBase::FilterBase() 
 {
-  m_MustStop = false;
-  SetVerboseOption(false);
+  SetVerboseOptionFlag(false);
   SetCurrentStepNumber(0);
   SetCurrentStepBaseId("");
-  StopOnErrorOn();
-  ResetLastError();
-  VerboseWarningOffOn(); // OffOn, it's cool not ?
+  VerboseWarningFlagOn();
+  VerboseWarningFlagOff();
+  VerboseMemoryFlagOff();
+  VerboseImageSizeFlagOff();
   SetWarning("");
-}
-//--------------------------------------------------------------------
-
-
-//--------------------------------------------------------------------
-void clitk::FilterBase::ResetLastError()
-{
-  m_LastError = "";
-}
-//--------------------------------------------------------------------
-
-
-//--------------------------------------------------------------------
-void clitk::FilterBase::SetLastError(std::string e)
-{
-  m_LastError = e;
-  if (GetStopOnError()) {
-    std::cerr << GetLastError() << std::endl;
-    exit(0);
-  }
+  VerboseWarningFlagOn();
+  m_IsCancelled = false;
 }
 //--------------------------------------------------------------------
 
@@ -58,7 +41,7 @@ void clitk::FilterBase::SetLastError(std::string e)
 void clitk::FilterBase::SetWarning(std::string e)
 {
   m_Warning = e;
-  if (!GetVerboseWarningOff()) {
+  if (GetVerboseWarningFlag()) {
     std::cout << GetWarning() << std::endl;
   }
 }
@@ -66,8 +49,12 @@ void clitk::FilterBase::SetWarning(std::string e)
 
 
 //--------------------------------------------------------------------
-void clitk::FilterBase::StartNewStep(std::string s) 
+void clitk::FilterBase::StartNewStep(std::string s, bool endl
 {
+  if (Cancelled()) {
+    throw clitk::ExceptionObject("Filter is canceled.");
+  }
+
   m_CurrentStepNumber++;
   if (GetCurrentStepBaseId() != "") {
     std::ostringstream oss;
@@ -81,8 +68,9 @@ void clitk::FilterBase::StartNewStep(std::string s)
   }
 
   m_CurrentStepName = "Step "+GetCurrentStepId()+" -- "+s;
-  if (m_VerboseStep) {
-    std::cout << m_CurrentStepName << std::endl;
+  if (GetVerboseStepFlag()) {
+    std::cout << m_CurrentStepName;
+    if (endl) std::cout << std::endl;
     //"Step " << GetCurrentStepId() << " -- " << s << std::endl;
   }
 }
@@ -98,10 +86,38 @@ void clitk::FilterBase::StopCurrentStep()
 
 
 //--------------------------------------------------------------------
-void clitk::FilterBase::MustStop()
+void clitk::FilterBase::Cancel()
+{
+  m_IsCancelled = true;
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+bool clitk::FilterBase::Cancelled()
 {
-  m_MustStop = true;
+  return m_IsCancelled;
 }
 //--------------------------------------------------------------------
 
 
+//--------------------------------------------------------------------
+void clitk::FilterBase::StartSubStep() {
+  m_SubstepNumbers.push_back(GetCurrentStepNumber());
+  m_SubstepID.push_back(GetCurrentStepId());
+  SetCurrentStepBaseId(GetCurrentStepId());
+  SetCurrentStepNumber(0);;
+}
+//--------------------------------------------------------------------
+
+
+//--------------------------------------------------------------------
+void clitk::FilterBase::StopSubStep() {
+  int s = m_SubstepNumbers.back();
+  m_SubstepNumbers.pop_back();
+  SetCurrentStepNumber(s);
+  m_SubstepID.pop_back();
+  if (m_SubstepID.size() != 0) {
+    SetCurrentStepBaseId(m_SubstepID.back());  }
+  else SetCurrentStepBaseId("");
+}