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;
}
//--------------------------------------------------------------------
void clitk::FilterBase::SetWarning(std::string e)
{
m_Warning = e;
- if (!GetVerboseWarningOff()) {
+ if (GetVerboseWarningFlag()) {
std::cout << GetWarning() << std::endl;
}
}
//--------------------------------------------------------------------
void clitk::FilterBase::StartNewStep(std::string s)
{
- //m_CurrentStepTimer.Reset();
- // m_CurrentStepTimer.Start();
+ if (Cancelled()) {
+ throw clitk::ExceptionObject("Filter is canceled.");
+ }
+
m_CurrentStepNumber++;
if (GetCurrentStepBaseId() != "") {
std::ostringstream oss;
}
m_CurrentStepName = "Step "+GetCurrentStepId()+" -- "+s;
- if (m_VerboseStep) {
+ if (GetVerboseStepFlag()) {
std::cout << m_CurrentStepName << std::endl;
//"Step " << GetCurrentStepId() << " -- " << s << std::endl;
}
//--------------------------------------------------------------------
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("");
+}