-/*=========================================================================
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ # pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ # This software is governed by the CeCILL-B license under French law and
+ # abiding by the rules of distribution of free software. You can use,
+ # modify and/ or redistribute the software under the terms of the CeCILL-B
+ # license as circulated by CEA, CNRS and INRIA at the following URL
+ # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ # or in the file LICENSE.txt.
+ #
+ # As a counterpart to the access to the source code and rights to copy,
+ # modify and redistribute granted by the license, users are provided only
+ # with a limited warranty and the software's author, the holder of the
+ # economic rights, and the successive licensors have only limited
+ # liability.
+ #
+ # The fact that you are presently reading this means that you have had
+ # knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
+
+/*=========================================================================
Program: bbtk
Module: $RCSfile: bbtkBlackBox.cxx,v $
Language: C++
- Date: $Date: 2012/07/26 08:28:31 $
- Version: $Revision: 1.55 $
+ Date: $Date: 2012/11/16 08:49:01 $
+ Version: $Revision: 1.56 $
=========================================================================*/
-/* ---------------------------------------------------------------------
-
-* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
-* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
-*
-* This software is governed by the CeCILL-B license under French law and
-* abiding by the rules of distribution of free software. You can use,
-* modify and/ or redistribute the software under the terms of the CeCILL-B
-* license as circulated by CEA, CNRS and INRIA at the following URL
-* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-* or in the file LICENSE.txt.
-*
-* As a counterpart to the access to the source code and rights to copy,
-* modify and redistribute granted by the license, users are provided only
-* with a limited warranty and the software's author, the holder of the
-* economic rights, and the successive licensors have only limited
-* liability.
-*
-* The fact that you are presently reading this means that you have had
-* knowledge of the CeCILL-B license and that you accept its terms.
-* ------------------------------------------------------------------------ */
+
/**
* \file
namespace bbtk
{
- static bool bbmgSomeBoxExecuting = false;
- static bool bbmgFreezeExecution = false;
+ static bool bbmgSomeBoxExecuting = false;
+ static bool bbmgFreezeExecution = false;
static std::set<BlackBox::WeakPointer> bbmgExecutionList;
//=========================================================================
if (!pack.expired())
{
Package::ReleaseBlackBoxDescriptor(pack,desc);
- }
- else
- {
+ } else {
bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<<name<<"\") : descriptor package expired (was not held by a package and the box was the last instance)"<<std::endl);
}
- }
- else
- {
+ } else {
bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<<name<<"\") : descriptor expired : nothing to do (was not held by a package or the box is a complex black box prototype)"<<std::endl);
}
bbtkDebugMessage("object",2,"<## BlackBox::Deleter(\""<<name<<"\")"<<std::endl);
std::string BlackBox::bbGetNameWithParent() const
{
if (bbmParent.lock())
- {
- return bbmParent.lock()->bbGetNameWithParent() + ":" + bbmName;
- }
- else
- {
- return bbmName;
- }
+ {
+ return bbmParent.lock()->bbGetNameWithParent() + ":" + bbmName;
+ } else {
+ return bbmName;
+ }
}
//=========================================================================
}
*/
+
OutputConnectorMapType::const_iterator o;
for ( o = bbGetOutputConnectorMap().begin();
o != bbGetOutputConnectorMap().end(); ++o )
- {
- if (o->second->GetStatus()==UPTODATE)
+ {
+
+
+ if (o->first=="BoxChange")
+ {
+ o->second->SetStatus(UPTODATE);
+ }
+
+
+
+//EED 24/08/2015
+// EED CASPITAS 2
+ if (o->second->GetStatus()==UPTODATE)
+// if ((o->second->GetStatus()==UPTODATE) || (o->second->GetStatus()==OUTOFDATE))
+// if ((o->second->GetStatus()==UPTODATE) || (o->second->GetStatus()==MODIFIED))
{
o->second->SetStatus(OUTOFDATE);
o->second->SignalChange(GetThisPointer<BlackBox>(),o->first);
- }
- }
+ } // if
+ } // for
+
if ( ( bbBoxProcessModeIsReactive()
|| (c==bbGetInputConnectorMap().find("BoxExecute")->second))
&& (bbCanReact() ) )
bbtkBlackBoxDebugMessage("change",2,
"-> Execution triggered by Reactive mode or BoxExecute input change"<<std::endl);
bbGlobalAddToExecutionList( GetThisPointer<BlackBox>() );
- }
+ } // if
bbtkBlackBoxDebugMessage("change",5,
"<= BlackBox::bbSetStatusAndPropagate(input)"
<<std::endl);
<<std::endl);
// If already executing : return
- if (bbGetExecuting())
- {
- bbtkBlackBoxDebugMessage("process",3,
+ if (bbGetExecuting())
+ {
+ bbtkBlackBoxDebugMessage("process",3,
" -> already executing : abort"<<std::endl);
- return;
- }
+ return;
+ }
// If not initialized do it
bbInitializeProcessing();
IOStatus s=UPTODATE;
// IOStatus s=OUTOFDATE;
// IOStatus s=MODIFIED;
-
-
+
+
if ( ( bbBoxProcessModeIsManual()==false ) ||
( (bbBoxProcessModeIsManual()==true) && (bbLetRecursiveExecuteManualMode==true) ) )
{
( (bbBoxProcessModeIsManual()==true)&&(bbLetRecursiveExecuteManualMode==true) )
)
{
+//printf("EED BlackBox::bbRecursiveExecute bbProcess start %s \n", bbGetFullName().c_str() );
this->bbProcess();
+//printf("EED BlackBox::bbRecursiveExecute bbProcess end %s \n", bbGetFullName().c_str() );
} // Manual analysis
//EED ups if ((bbBoxProcessModeIsManual()==true) && (bbLetRecursiveExecuteManualMode==false))
// Update the I/O statuses
bbComputePostProcessStatus();
- }
- else
- {
+ } else {
// Test output status...
OutputConnectorMapType::iterator o;
for ( o = bbGetOutputConnectorMap().begin();
<<"all inputs are Up-to-date but output '"
<<o->first<<"' is Out-of-date ???");
}
- }
+ } // for
bbtkBlackBoxDebugMessage("process",3," -> Up-to-date : nothing to do"
<<std::endl);
- }
+ } // if
// Shows the window if the black box has one
this->bbShowWindow();
<<std::endl);
bbmgGlobalProcessingExecutionList = false;
+
}
//=========================================================================