X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkBlackBox.cxx;h=6fb1fb83a9c749dfce3cc545269c3f0773ad71bf;hb=3dcc408acd2264664ca6431a501378ea64233dd6;hp=2e5716e3f9ba87e897ae7f3a69d7b10568af3743;hpb=e746553dde41260204aae07b809f484544de10b9;p=bbtk.git diff --git a/kernel/src/bbtkBlackBox.cxx b/kernel/src/bbtkBlackBox.cxx index 2e5716e..6fb1fb8 100644 --- a/kernel/src/bbtkBlackBox.cxx +++ b/kernel/src/bbtkBlackBox.cxx @@ -1,32 +1,39 @@ -/*========================================================================= +/* + # --------------------------------------------------------------------- + # + # 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: 2008/12/10 09:33:18 $ - Version: $Revision: 1.36 $ + 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 @@ -40,6 +47,7 @@ #include "bbtkConfigurationFile.h" #include "bbtkWxBlackBox.h" +#include "bbtkWx.h" #include //#include @@ -47,20 +55,19 @@ namespace bbtk { - - static bool bbmgSomeBoxExecuting = false; static bool bbmgFreezeExecution = false; static std::set bbmgExecutionList; //========================================================================= + BlackBox::Deleter::Deleter() { } //========================================================================= //========================================================================= - void BlackBox::Deleter::Delete(Object* p) + int BlackBox::Deleter::Delete(Object* p) { BlackBox* b = dynamic_cast(p); if (!b) @@ -76,9 +83,9 @@ namespace bbtk BlackBoxDescriptor::WeakPointer desc = b->bbGetDescriptor(); bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<bbDelete(); + int refs = b->bbDelete(); - bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""< BlackBox::Deleter(\""< BlackBox::Deleter(\""< BlackBox::BlackBox(\"" + //JCP 02-11-09 + // bbmBoxProcessMode = "Pipeline"; +//std::cout<<"JCP BlackBox::BlackBox(const std::string &name) name=" < BlackBox::BlackBox(\"" < BlackBox::BlackBox(" + //JCP 02-11-09 + //bbmBoxProcessMode = from.bbmBoxProcessMode; + //std::cout<<"JCP BlackBox::BlackBox(const std::string &name) name=" < BlackBox::BlackBox(" < BlackBox::~BlackBox() ["< BlackBox::~BlackBox() ["<bbDesallocateConnectors(); - bbtkDebugMessage("object",4,"<== BlackBox::~BlackBox() ["< BlackBox::bbExecute("<<(int)force<<") [" - < already executing : bailing out"< FreezeExecution global flag is 'true' : abort execution"<GetHelp(full); @@ -224,76 +206,76 @@ namespace bbtk //========================================================================= - /// Returns true if the UserBlackBox has an input of name name bool BlackBox::bbHasInput(const std::string& name) const { - bbtkDebugMessageInc("Kernel",8, + bbtkBlackBoxDebugMessage("kernel",8, "BlackBox::bbHasInput(\"" - <GetInputDescriptorMap().find(name) != bbGetDescriptor()->GetInputDescriptorMap().end()); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= //========================================================================= - /// Returns true if the UserBlackBox has an output of name name bool BlackBox::bbHasOutput(const std::string& name) const { - bbtkDebugMessageInc("Kernel",8,"BlackBox::bbHasOutput(\"" - <GetOutputDescriptorMap().find(name) != bbGetDescriptor()->GetOutputDescriptorMap().end()); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= //========================================================================= - /// Gets the output type of a given name TypeInfo BlackBox::bbGetOutputType( const std::string &name ) const { - bbtkDebugMessageInc("Kernel",8, - "BlackBox::bbGetOutputType(\"" - <GetOutputDescriptor(name)->GetTypeInfo(); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= //========================================================================= - /// Gets the input type of a given name TypeInfo BlackBox::bbGetInputType( const std::string &name ) const { - bbtkDebugMessageInc("Kernel",8, - "BlackBox::bbGetInputType(\"" - <GetInputDescriptor(name)->GetTypeInfo(); - bbtkDebugDecTab("Kernel",8); + bbtkDebugDecTab("kernel",8); return r; } //========================================================================= //========================================================================= - /// Allocates the i/o connectors of the black box void BlackBox::bbAllocateConnectors() { - bbtkDebugMessageInc("Kernel",8, - "BlackBox::bbAllocateConnectors() [" - <GetInputDescriptorMap(); BlackBoxDescriptor::InputDescriptorMapType::const_iterator i; for ( i = imap.begin(); i != imap.end(); ++i ) { - bbtkDebugMessage("Kernel",8,"* Allocate \""<first<<"\""<first<<"\""<second->GetName()] = new BlackBoxInputConnector(GetThisPointer()); } @@ -302,20 +284,18 @@ namespace bbtk BlackBoxDescriptor::OutputDescriptorMapType::const_iterator o; for ( o = omap.begin(); o != omap.end(); ++o ) { - bbtkDebugMessage("Kernel",8,"* Allocate \""<first<<"\""<first<<"\""<second->GetName()] - = new BlackBoxOutputConnector(); + = new BlackBoxOutputConnector(GetThisPointer()); } - bbtkDebugDecTab("Kernel",8); } //========================================================================= //========================================================================= - /// Desallocates the i/o connectors of the black box void BlackBox::bbDesallocateConnectors() { - bbtkDebugMessageInc("Kernel",8, + bbtkBlackBoxDebugMessage("kernel",8, "BlackBox::bbDesallocateConnectors()" <first<<"\""<first<<"\""<second); } OutputConnectorMapType::const_iterator o; for ( o = bbGetOutputConnectorMap().begin(); o != bbGetOutputConnectorMap().end(); ++o ) { - bbtkDebugMessage("Kernel",8,"* Delete \""<first<<"\""<first<<"\""<second); } - bbtkDebugDecTab("Kernel",8); - + bbtkDebugDecTab("kernel",8); } //========================================================================= //========================================================================= - /// Copies the input / output values from another box void BlackBox::bbCopyIOValues(BlackBox& from) { - bbtkDebugMessageInc("Kernel",1, - "BlackBox::bbCopyIOValues(" - <GetInputDescriptorMap(); @@ -356,7 +334,7 @@ namespace bbtk { if (! i->second->GetCopyConstruct() ) continue; std::string input = i->second->GetName(); - bbtkDebugMessage("Kernel",2,"* Copying input "<bbSetInput(input, from.bbGetInput(input) ); } // copies the output values @@ -367,12 +345,11 @@ namespace bbtk { if (! o->second->GetCopyConstruct() ) continue; std::string output = o->second->GetName(); - bbtkDebugMessage("Kernel",2,"* Copying output "<bbSetOutput(output, from.bbGetOutput(output) ); } - bbtkDebugDecTab("Kernel",9); - + bbtkDebugDecTab("kernel",9); } //========================================================================= @@ -382,66 +359,72 @@ namespace bbtk bool BlackBox::bbCanReact() const { return ( bbGlobalGetSomeBoxExecuting() -#ifdef _USE_WXWIDGETS_ +#ifdef USE_WXWIDGETS || Wx::IsSomeWindowAlive() #endif - ); + ); } //========================================================================= - //========================================================================= - /// User overloadable destruction method of a black box - void BlackBox::bbUserDelete() - { - bbtkDebugMessage("process",5, - "=> BlackBox::bbUserDelete() [" - < BlackBox::bbSetInputChangeTime("<SetChangeTime(t) ) - { - bool was_up_to_date = bbIsUpToDate(); - // If new time is greater than the old max time of inputs - if ( mMaxInputChangeTime.Set(t) ) - { - // If the box turned out-of-date - if ( was_up_to_date && bbIsOutOfDate() ) - { - // - if ( ( bbBoxProcessModeIsReactive() || - (c==bbGetInputConnectorMap().find("BoxExecute")->second)) - && (bbCanReact() ) ) - { - bbtkDebugMessage("change",2, - "an input of " - <() ); - } - // Have to propagate the modification to aval boxes - OutputConnectorMapType::iterator i; - for (i = bbGetOutputConnectorMap().begin(); - i != bbGetOutputConnectorMap().end(); - ++i) - { - i->second->SetChangeTime(t); - } - // update the MinOutputChangeTime - mMinOutputChangeTime.Set(t); - } - } - } - } - //========================================================================= - - //========================================================================= - /// Sets the ChangeTime of output - void BlackBox::bbSetOutputChangeTime(BlackBoxOutputConnector* c, - const ChangeTime& t) + void BlackBox::bbSetStatusAndPropagate(BlackBoxInputConnector* c, + IOStatus s) { - bbtkDebugMessage("change",1, - "==> BlackBox::bbSetOutputChangeTime("<SetChangeTime(t); - // c->GetChangeTime() = t; - // bbUpdateMinOutputChangeTime(t); - // propagate - - } - //========================================================================= - */ + bbtkBlackBoxDebugMessage("change",5, + "=> BlackBox::bbSetStatusAndPropagate(input," + < mMaxInputChangeTime ) - { - mMaxInputChangeTime = t; - if ( mMinOutputChangeTime > mMaxInputChangeTime ) - { - - } - } - - } - //========================================================================= + if (s==UPTODATE) bbtkError("bbSetStatusAndPropagate with status UPTODATE!"); + c->SetStatus(s); - //========================================================================= - void bbUpdateMinOutputChangeTime(const ChangeTime& t) - { - ChangeTime old = mMinOutputChangeTime; - mMinOutputChangeTime = MAXLONG; - OutputConnectorMapType::iterator i; - for (i = bbGetOutputConnectorMap.begin(); - i != bbGetOutputConnectorMap.end(); - ++i) - { - if (i->second->GetChangeTime() < mMinOutputChangeTime) - mMinOutputChangeTime = i->second->GetChangeTime(); - } - if ( mMinOutputChangeTime < old ) + // Flash reaction + /* + if (bbGetBoxProcessModeValue() == Flash) { + this->bbExecute(); } - - } - //========================================================================= - */ + */ - //========================================================================= - /// Signals that the BlackBox has been modified through - /// the input connector c - /// and propagates it downward - /// ** NOT USER INTENDED ** - void BlackBox::bbSetStatusAndPropagate(BlackBoxInputConnector* c, - IOStatus s) - { - bbtkDebugMessageInc("change",5, - "=> BlackBox::bbSetStatusAndPropagate(input," - <SetStatus(s); 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(),o->first); - } - } + } // if + } // for - if ( ( bbBoxProcessModeIsReactive() || - (c==bbGetInputConnectorMap().find("BoxExecute")->second)) - && (bbCanReact() ) ) + + if ( ( bbBoxProcessModeIsReactive() + || (c==bbGetInputConnectorMap().find("BoxExecute")->second)) + && (bbCanReact() ) ) { - bbtkDebugMessage("change",2, + bbtkBlackBoxDebugMessage("change",2, "-> Execution triggered by Reactive mode or BoxExecute input change"<() ); - } - bbtkDebugMessageInc("change",5, - "<= BlackBox::bbSetStatusAndPropagate(input) [" - < BlackBox::bbSignalOutputModification(" - < BlackBox::bbSignalOutputModification(" + <second->SignalChange(GetThisPointer(),i->first); // } - } + } // for if (reaction) bbGlobalProcessExecutionList(); - bbtkDebugMessageDec("change",5, - "<= BlackBox::bbSignalOutputModification() [" - < BlackBox::bbSignalOutputModification(" - < BlackBox::bbSignalOutputModification(" + <& output, bool reaction) { - bbtkDebugMessageInc("change",5, - "=> BlackBox::bbSignalOutputModification(vector of outputs) [" - < BlackBox::bbSignalOutputModification(vector of outputs)" +<::const_iterator o; bool changed = false; @@ -716,22 +613,204 @@ namespace bbtk // } } - bbtkDebugMessageDec("change",5, - "<= BlackBox::bbSignalOutputModification(vector of outputs) [" - < BlackBox::bbExecute("<<(int)force<<")" + < already executing : abort"< FreezeExecution global flag is 'true' : abort execution"<bbRecursiveInitializeProcessing(); + bbmInitialized = true; + } + } + //========================================================================= + + //========================================================================= + void BlackBox::bbFinalizeProcessing() + { + if (bbmInitialized) + { + bbtkBlackBoxDebugMessage("process",2,"** Finalize processing" + <bbRecursiveFinalizeProcessing(); + bbmInitialized = false; + } + } + //========================================================================= + + + //========================================================================= + void BlackBox::bbRecursiveExecute( Connection::Pointer caller ) + { + + bbtkBlackBoxDebugMessage("process",3, + "=> BlackBox::bbRecursiveExecute(" + <<(caller?caller->GetFullName():"0")<<")" + < already executing : abort"<bbCreateWindow(); + + // Updates its inputs + +// IOStatus s; + IOStatus s=UPTODATE; +// IOStatus s=OUTOFDATE; +// IOStatus s=MODIFIED; + + + if ( ( bbBoxProcessModeIsManual()==false ) || + ( (bbBoxProcessModeIsManual()==true) && (bbLetRecursiveExecuteManualMode==true) ) ) + { + s = bbUpdateInputs(); + } + + if ( (s != UPTODATE) || bbBoxProcessModeIsAlways() ) + { + // Displays the window (WxBlackbox) + // bbShowWindow(caller); + + // Actual processing (virtual) + if ( ( bbBoxProcessModeIsManual()==false ) || + ( (bbBoxProcessModeIsManual()==true)&&(bbLetRecursiveExecuteManualMode==true) ) + ) + { + this->bbProcess(); + } // Manual analysis + +//EED ups if ((bbBoxProcessModeIsManual()==true) && (bbLetRecursiveExecuteManualMode==false)) +//EED ups { +//EED ups bbSignalOutputModification(true); +//EED ups } + + + // Update the I/O statuses + bbComputePostProcessStatus(); + } + else + { + // Test output status... + OutputConnectorMapType::iterator o; + for ( o = bbGetOutputConnectorMap().begin(); + o!= bbGetOutputConnectorMap().end(); ++o) + { + if (o->second->GetStatus() != UPTODATE) + { + bbtkWarning("BlackBox::bbRecursiveExecute: " + <<"all inputs are Up-to-date but output '" + <first<<"' is Out-of-date ???"); + } + } + + bbtkBlackBoxDebugMessage("process",3," -> Up-to-date : nothing to do" + <bbShowWindow(); + + + bbtkBlackBoxDebugMessage("process",3, + "<= BlackBox::bbRecursiveExecute()" + < BlackBox::bbUpdateInputs() [" - < BlackBox::bbUpdateInputs()" <GetInputDescriptor(i->first)->GetTypeInfo() // == typeid(Void) ) // continue; - bbtkDebugMessageDec("change",2, - bbGetName()<<"."<first - <<" ["<second<<"] " - <<" status before update = '" + bbtkBlackBoxDebugMessage("change",2, + "Input '"<first + <<"': status before update = '" <second->GetStatus()) <<"'"<second->BackwardUpdate(); + i->second->RecursiveExecute(); IOStatus t = i->second->GetStatus(); if (t > s) s = t; - bbtkDebugMessageDec("change",2, - bbGetName()<<"."<first - <<" ["<second<<"] " - <<" status before process = '" - <second->GetStatus()) - <<"'"<first + <<"': status before process = '" + <second->GetStatus()) + <<"'"< BlackBox::bbComputePostProcessStatus() [" - < BlackBox::bbComputePostProcessStatus()" <second->SetStatus(UPTODATE); - bbtkDebugMessage("change",2, - bbGetName()<<"."<first<<" : " + bbtkBlackBoxDebugMessage("change",2, + "Input '"<first<<"' : " << GetIOStatusString(t) << " -> " << GetIOStatusString(i->second->GetStatus()) << std::endl); } - bbtkDebugMessage("change",2, - bbGetName()<<" new output status : " - << GetIOStatusString(new_output_status) - <second->SetStatus(new_output_status); + +//EED if ( ( bbBoxProcessModeIsManual()==false ) || +//EED ( (bbBoxProcessModeIsManual()==true) && (bbLetRecursiveExecuteManualMode==true) ) +//EED ) +//EED { + o->second->SetStatus(new_output_status); +//EED } else { +//EED if (( (bbBoxProcessModeIsManual()==true) && (bbLetRecursiveExecuteManualMode==false) ) ) +//EED { +//EED o->second->SetStatus(UPTODATE); +//EED } +//EED } // Manual analysis + } - bbtkDebugMessageInc("process",4, - "<= BlackBox::bbComputePostProcessStatus() [" - < to the connection c void BlackBox::bbConnectInput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "==> BlackBox::bbConnectInput(\"" - <GetFullName()<<") [" - <GetFullName()<<")" <second->SetConnection(c); // The input *MUST* be set OUTOFDATE to update its input on next execution bbSetStatusAndPropagate(i->second,OUTOFDATE); - - bbtkDebugMessage("connection",2, - "<== BlackBox::bbConnectInput(\"" - <GetFullName()<<") [" - <GetFullName()<<")" + < to the connection c void BlackBox::bbConnectOutput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, - "==> BlackBox::bbConnectOutput(\""<GetFullName()<<") [" - < BlackBox::bbConnectOutput(\""<GetFullName()<<")" + <second->SetConnection(c); - bbtkDebugMessage("connection",2, - "<== BlackBox::bbConnectOutput(\""<GetFullName()<<") [" - <GetFullName()<<")" + < from the connection c - void BlackBox::bbDisconnectInput( const std::string& name, Connection* c) + void BlackBox::bbDisconnectInput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "==> BlackBox::bbDisconnectInput(\""<GetFullName()<<") [" - <GetFullName()<<")" + <second->UnsetConnection(c); - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "<== BlackBox::bbDisconnectInput(\""<GetFullName()<<") [" - <GetFullName()<<")" < from the connection c - void BlackBox::bbDisconnectOutput( const std::string& name, Connection* c) + void BlackBox::bbDisconnectOutput( const std::string& name, Connection* c) { - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "==> BlackBox::bbDisconnectOutput(\""<GetFullName()<<") [" - <GetFullName()<<")" <second->UnsetConnection(c); - bbtkDebugMessage("connection",2, + bbtkBlackBoxDebugMessage("connection",2, "<== BlackBox::bbDisconnectOutput(\""<GetFullName()<<") [" - <GetFullName()<<")" <GetOutputDescriptor(ii->first); tempStrTypeName=id->GetTypeName(); SubsBrackets(tempStrTypeName); - std::string Name(ii->first); - SubsBrackets(Name); + std::string Name(ii->first); + SubsBrackets(Name); labelStr=labelStr+"<"+ii->first.c_str()+"> " + valueStr + Name.c_str() + " ["+tempStrTypeName+"]"; } labelStr = labelStr+ " } }" ; @@ -1199,35 +1287,35 @@ namespace bbtk //========================================================================= - void BlackBox::bbShowRelations(BlackBox::Pointer parentblackbox, + void BlackBox::bbPrintHelp(BlackBox::Pointer parentblackbox, int detail, int level /*,Factory *factory*/ ) { if (this->bbGetDescriptor()->GetPackage()) { - bbtkMessage("Help",1,"Black Box '"<bbGetDescriptor()->GetPackage()->GetName() <<"::"<bbGetDescriptor()->GetTypeName()<<">"<bbGetDescriptor()->GetTypeName()<<">"<bbGetDescriptor()->GetTypeName()<<">"< iname; std::vector ivalue; @@ -1239,114 +1327,132 @@ namespace bbtk unsigned int valuelmax = 0; // unsigned int connlmax = 0; for ( i = mInputConnectorMap.begin(); i != mInputConnectorMap.end(); ++i ) - { - iname.push_back(i->first); - if (iname.back().size()>namelmax) namelmax = iname.back().size(); - ivalue.push_back(bbGetInputAsString(i->first)); - if (ivalue.back().size()>valuelmax) valuelmax = ivalue.back().size(); - std::string s(""); - Connection* con = i->second->GetConnection(); - if (con!=0){ - s = con->GetOriginalBlackBoxFrom()->bbGetName(); - s += "."; - s += con->GetOriginalBlackBoxFromOutput(); - } // if con - iconn.push_back(s); - istatus.push_back(GetIOStatusString(i->second->GetStatus())); - } + { + iname.push_back(i->first); + if (iname.back().size()>namelmax) namelmax = iname.back().size(); + ivalue.push_back(bbGetInputAsString(i->first)); + if (ivalue.back().size()>valuelmax) valuelmax = ivalue.back().size(); + std::string s(""); + Connection* con = i->second->GetConnection(); + if (con!=0){ + s = con->GetOriginalBlackBoxFrom()->bbGetName(); + s += "."; + s += con->GetOriginalBlackBoxFromOutput(); + } // if con + iconn.push_back(s); + istatus.push_back(GetIOStatusString(i->second->GetStatus())); + } OutputConnectorMapType::iterator o; std::vector oname; std::vector ovalue; std::vector > oconn; std::vector ostatus; for ( o = mOutputConnectorMap.begin(); o != mOutputConnectorMap.end(); ++o ) - { - oname.push_back(o->first); - if (oname.back().size()>namelmax) namelmax = oname.back().size(); - ovalue.push_back(bbGetOutputAsString(o->first)); - if (ovalue.back().size()>valuelmax) valuelmax = ovalue.back().size(); - std::vector ss; - const std::vector& con - = o->second->GetConnectionVector(); - std::vector::const_iterator c; - for (c=con.begin();c!=con.end();++c) - { - std::string s; - s = (*c)->GetOriginalBlackBoxTo()->bbGetName(); - s += "."; - s += (*c)->GetOriginalBlackBoxToInput(); - ss.push_back(s); - } // if con - oconn.push_back(ss); - ostatus.push_back(GetIOStatusString(o->second->GetStatus())); - } + { + oname.push_back(o->first); + if (oname.back().size()>namelmax) + namelmax = oname.back().size(); + ovalue.push_back(bbGetOutputAsString(o->first)); + if (ovalue.back().size()>valuelmax) + valuelmax = ovalue.back().size(); + std::vector ss; + const std::vector& con + = o->second->GetConnectionVector(); + std::vector::const_iterator c; + for (c=con.begin();c!=con.end();++c) + { + std::string s; + s = (*c)->GetOriginalBlackBoxTo()->bbGetName(); + s += "."; + s += (*c)->GetOriginalBlackBoxToInput(); + ss.push_back(s); + } // if con + oconn.push_back(ss); + ostatus.push_back(GetIOStatusString(o->second->GetStatus())); + } if (iname.size()) - bbtkMessage("Help",1," * Inputs : "<::iterator i1,i2,i3,i4; for (i1=iname.begin(),i2=ivalue.begin(),i3=iconn.begin(),i4=istatus.begin(); - i1!=iname.end(),i2!=ivalue.end(),i3!=iconn.end(),i4!=istatus.end(); - ++i1,++i2,++i3,++i4) - { - std::string name(*i1); - name += "'"; - name.append(1+namelmax-name.size(),' '); - std::string value(*i2); - value += "'"; - value.append(1+valuelmax-value.size(),' '); - if (i3->size()) - bbtkMessage("Help",1," '"<size()) + bbtkBlackBoxMessage("help",1," '"< BlackBox::bbGlobalProcessExecutionList()" - < BlackBox::bbGlobalProcessExecutionList()" + < Executing "<< - p.lock()->bbGetFullName()< Executing '"<< + p.lock()->bbGetName()<<"'"<bbExecute(true); } else @@ -1374,11 +1480,12 @@ namespace bbtk } bbmgExecutionList.clear(); - bbtkDebugMessageDec("process",3, + bbtkDebugMessage("process",3, "<= BlackBox::bbGlobalProcessExecutionList()" <bbGetFullName()<<")"<bbGetName()<<")"<bbGetInputConnectorMap().find( nameInput.c_str() )->second; - if (cc->GetConnection()!=NULL) - { - cc->GetConnection()->GetBlackBoxFrom()->bbUserOnShow(); - } - }