Program: bbtk
Module: $RCSfile: bbtkBlackBox.cxx,v $
Language: C++
-Date: $Date: 2008/02/08 10:05:38 $
-Version: $Revision: 1.3 $
+Date: $Date: 2008/03/11 18:46:47 $
+Version: $Revision: 1.7 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See doc/license.txt or
namespace bbtk
{
+
+//EED
+ static bool bbmgSomeBoxExecuting = false;
+ static bool bbmgFreezeExecution = false;
+ static std::set<BlackBox*> bbmgExecutionList;
+
+
//=========================================================================
BlackBox::BlackBox(const std::string &name)
: bbmName(name), bbmStatus(MODIFIED),
}
if (reaction) bbGlobalProcessExecutionList();
- bbtkDebugMessageDec("Process",5,
- "<= BlackBox::bbSignalOutputModification("
- <<output<<") ["
- <<bbGetFullName()<<"]"<<std::endl);
+ bbtkDebugMessageDec("Process",5,
+ "<= BlackBox::bbSignalOutputModification("
+ <<output<<") ["
+ <<bbGetFullName()<<"]"<<std::endl);
}
//=========================================================================
<<std::endl);
IOStatus s = UPTODATE;
-
+
InputConnectorMapType::iterator i;
for ( i = bbGetInputConnectorMap().begin();
i!= bbGetInputConnectorMap().end(); ++i)
// Looks for the adaptor
if (bbGetOutputType(output).name() != typeid(std::string).name() )
{
- BlackBox* a = 0;
- try
+ // Look for factory
+ Package* p = bbGetDescriptor()->GetPackage();
+ if ((p != 0) && ( ! p->GetFactorySet().empty() ) )
{
- a = NewAdaptor(
- bbGetOutputType(output),
- typeid(std::string),
- "");
- } catch (bbtk::Exception e)
+ Factory* f = *p->GetFactorySet().begin();
+ BlackBox* a = 0;
+ try
+ {
+ a = f->NewAdaptor(
+ bbGetOutputType(output),
+ typeid(std::string),
+ "");
+ } catch (bbtk::Exception e)
+ {
+ }
+ if (a!=NULL){
+ // bbUpdate();
+ a->bbSetInput("In",bbGetOutput(output));
+ a->bbExecute();
+ v = a->bbGetOutput("Out").unsafe_get<std::string>() ;
+ } else {
+ v="? (no adaptor found)";
+ }
+ }
+ else
{
+ v="? (no factory found)";
}
- if (a!=NULL){
- // bbUpdate();
- a->bbSetInput("In",bbGetOutput(output));
- a->bbExecute();
- v = a->bbGetOutput("Out").unsafe_get<std::string>() ;
- } else {
- v="? (no adaptor found)";
- }
- } else {
- // bbUpdate();
- v = bbGetOutput(output).unsafe_get<std::string>() ;
- }
+ }
+ else
+ {
+ // bbUpdate();
+ v = bbGetOutput(output).unsafe_get<std::string>() ;
+ }
return v;
}
//=========================================================================
// Looks for the adaptor
if (bbGetInputType(input) != typeid(std::string))
{
- BlackBox* a = 0;
- try
- {
- a = NewAdaptor(
- bbGetInputType(input),
- typeid(std::string),
- "");
- }catch (bbtk::Exception e)
+ // Look for factory
+ Package* p = bbGetDescriptor()->GetPackage();
+ if ((p != 0) && ( ! p->GetFactorySet().empty() ) )
{
- }
- if (a!=NULL)
- {
- // bbUpdate();
- a->bbSetInput("In",bbGetInput(input));
- a->bbExecute();
- v = a->bbGetOutput("Out").unsafe_get<std::string>() ;
+ Factory* f = *p->GetFactorySet().begin();
+ BlackBox* a = 0;
+ try
+ {
+ a = f->NewAdaptor(
+ bbGetInputType(input),
+ typeid(std::string),
+ "");
+ }catch (bbtk::Exception e)
+ {
+ }
+ if (a!=NULL)
+ {
+ // bbUpdate();
+ a->bbSetInput("In",bbGetInput(input));
+ a->bbExecute();
+ v = a->bbGetOutput("Out").unsafe_get<std::string>() ;
+ }
+ else
+ {
+ v="? (no adaptor found)";
+ }
}
else
{
- v="? (no adaptor found)";
+ v="? (no factory found)";
}
- }
+ }
else
{
v = bbGetInput(input).unsafe_get<std::string>() ;
bool instanceOrtype,
bool relative_link )
- {
+ {
InputConnectorMapType::iterator i;
// label
std::string labelStr;
std::string valueStr("");
- if (detail==0)
- {
- labelStr = bbGetName() ;
- } else {
- labelStr = bbGetName();
- labelStr = labelStr + " [" +this->bbGetDescriptor()->GetPackage()->GetName()+"::"+ bbGetTypeName() + "] ";
+
+ if (detail==0) {
+ labelStr = bbGetName() ;
+//EED 18 Fev 2008
+ labelStr = labelStr + "\\n[" +this->bbGetDescriptor()->GetPackage()->GetName()+"::"+ bbGetTypeName() + "]";
+ } else {
+ labelStr = bbGetName();
+ labelStr = labelStr + " [" +this->bbGetDescriptor()->GetPackage()->GetName()+"::"+ bbGetTypeName() + "] ";
}
SubsBrackets(labelStr);
}
//=========================================================================
+ bool BlackBox::bbGlobalGetSomeBoxExecuting()
+ {
+ return bbmgSomeBoxExecuting;
+ }
+
+ void BlackBox::bbGlobalSetSomeBoxExecuting(bool b)
+ {
+ bbmgSomeBoxExecuting = b;
+ }
+
+ void BlackBox::bbGlobalSetFreezeExecution(bool b)
+ {
+ bbmgFreezeExecution = b;
+ }
+
+ bool BlackBox::bbGlobalGetFreezeExecution()
+ {
+ return bbmgFreezeExecution;
+ }
+
+ void BlackBox::bbGlobalAddToExecutionList( BlackBox* b )
+ {
+ bbmgExecutionList.insert(b);
+ }
+
+
//=========================================================================
// Static members initialization
+/*EED
bool BlackBox::bbmgSomeBoxExecuting = false;
bool BlackBox::bbmgFreezeExecution = false;
std::set<BlackBox*> BlackBox::bbmgExecutionList;
+*/
//=========================================================================