]> Creatis software - clitk.git/blobdiff - common/clitkFilterBase.cxx
Remove itkMultiThreader dependency because it does not exist with ITK5
[clitk.git] / common / clitkFilterBase.cxx
index 07b992512ce009257dedfdc7ae4640a9cce0a42c..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() 
 {
-  SetMustStop(false);
-  SetVerboseOption(false);
+  SetVerboseOptionFlag(false);
   SetCurrentStepNumber(0);
   SetCurrentStepBaseId("");
-  StopOnErrorOn();
-  ResetLastError();
-  VerboseWarningOffOn(); // OffOn, it's cool no ?
+  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,10 +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
 {
-  //m_CurrentStepTimer.Reset();
-  // m_CurrentStepTimer.Start();
+  if (Cancelled()) {
+    throw clitk::ExceptionObject("Filter is canceled.");
+  }
+
   m_CurrentStepNumber++;
   if (GetCurrentStepBaseId() != "") {
     std::ostringstream oss;
@@ -83,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;
   }
 }
@@ -94,33 +80,44 @@ void clitk::FilterBase::StartNewStep(std::string s)
 //--------------------------------------------------------------------
 void clitk::FilterBase::StopCurrentStep() 
 {
-  // m_CurrentStepTimer.Stop();
-  //  m_CurrentStepTimer.Print(std::cout);
-  //  std::ostringstream oss;
-  //oss << " (" << 
-    //  m_CurrentStepName = m_CurrentStepName +"
+  
 }
 //--------------------------------------------------------------------
 
 
 //--------------------------------------------------------------------
-void clitk::FilterBase::SetMustStop(bool b)
+void clitk::FilterBase::Cancel()
 {
-  m_MustStop = b;
-  if (GetMustStop()) {
-    SetLastError("Filter is interrupted.");  
-  }
+  m_IsCancelled = true;
 }
 //--------------------------------------------------------------------
 
 
 //--------------------------------------------------------------------
-bool clitk::FilterBase::GetMustStop()
+bool clitk::FilterBase::Cancelled()
 {
-  if (m_MustStop) return true;
-  if (HasError()) return true;
-  return false;
+  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("");
+}