X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkExecuter.cxx;h=8730b02eb2387ef7ea7bba95ce8f107e1ebea92f;hb=3ee95453a2ba41964c9bc420cb385b024cb2a21a;hp=ddda38ace0fc164b55943fbcf67a6a6bb5fb0751;hpb=a26195c366a89795288009cf7e20f11afa494970;p=bbtk.git diff --git a/kernel/src/bbtkExecuter.cxx b/kernel/src/bbtkExecuter.cxx index ddda38a..8730b02 100644 --- a/kernel/src/bbtkExecuter.cxx +++ b/kernel/src/bbtkExecuter.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkExecuter.cxx,v $ $ Language: C++ - Date: $Date: 2008/01/22 15:02:00 $ - Version: $Revision: 1.1 $ + Date: $Date: 2008/01/28 15:34:37 $ + Version: $Revision: 1.3 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -104,12 +104,12 @@ namespace bbtk mRoot = new ComplexBlackBoxDescriptor("workspace"); //,f); mRoot->AddToAuthor("bbi (internal)"); mRoot->AddToDescription("User's workspace"); - mCurrent.push_back(CBBDefinition(mRoot,"user")); + mOpenDefinition.push_back(CBBDefinition(mRoot,"user")); // Register it into the user package mPackage->RegisterBlackBox(mRoot); // Insert the user package in the factory InsertPackage(mPackage); - + mOpenPackage.push_back(mPackage); bbtkDebugDecTab("Core",9); } @@ -119,6 +119,31 @@ namespace bbtk mPackage->ChangeBlackBoxName( mRoot->GetTypeName(), n ); } + void Executer::BeginPackage (const std::string &name) + { + bbtkDebugMessageInc("Core",9,"Executer::BeginPackage(\""<GetPackage(name); + } + catch (Exception e) + { + p = new Package(name, + "", + "", + "", + BBTK_STRINGIFY_SYMBOL(BBTK_VERSION)); + InsertPackage(p); + } + mOpenPackage.push_back(p); + } + + void Executer::EndPackage() + { + if (mOpenPackage.size()>1) mOpenPackage.pop_back(); + } void Executer::Define (const std::string &name, const std::string &pack, @@ -130,7 +155,7 @@ namespace bbtk ComplexBlackBoxDescriptor* b = new ComplexBlackBoxDescriptor(name); b->SetScriptFileName(scriptfilename); - mCurrent.push_back( CBBDefinition( b, pack ) ); + mOpenDefinition.push_back( CBBDefinition( b, pack ) ); bbtkDebugDecTab("Core",9); } @@ -141,8 +166,11 @@ namespace bbtk <GetTypeName()<<"\")" <0) + { try { p = GetGlobalFactory()->GetPackage(pname); @@ -156,10 +184,14 @@ namespace bbtk BBTK_STRINGIFY_SYMBOL(BBTK_VERSION)); InsertPackage(p); } - + } + else + { + p = mOpenPackage.back(); + } p->RegisterBlackBox(Current()); - mCurrent.pop_back(); + mOpenDefinition.pop_back(); } @@ -418,11 +450,21 @@ namespace bbtk relative_link = false; } + + Package* p; + try + { + p = GetGlobalFactory()->GetPackage(nameblackbox); + } + catch (Exception e) + { + p = mPackage; + } // Generating documentation-help of workspace - mPackage->SetDocURL(filename_rootHtml); - mPackage->SetDocRelativeURL(simplefilename_rootHtml); + p->SetDocURL(filename_rootHtml); + p->SetDocRelativeURL(simplefilename_rootHtml); - mPackage->CreateHtmlPage(filename_rootHtml,"bbi","user package",custom_header,custom_title,detail,level,relative_link); + p->CreateHtmlPage(filename_rootHtml,"bbi","user package",custom_header,custom_title,detail,level,relative_link); std::string page = filename_rootHtml; /*