X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkFilterBase.cxx;h=f6bebad101072e7d8ed40fe62b710f962e802f1f;hb=refs%2Fheads%2FGammaIndex3D;hp=07b992512ce009257dedfdc7ae4640a9cce0a42c;hpb=868922dc773690f1be8f21159f10fc4702e5c09f;p=clitk.git diff --git a/common/clitkFilterBase.cxx b/common/clitkFilterBase.cxx index 07b9925..f6bebad 100644 --- a/common/clitkFilterBase.cxx +++ b/common/clitkFilterBase.cxx @@ -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 @@ -14,42 +14,25 @@ - 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(""); +}