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:08:53 $
+ Version: $Revision: 1.2 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
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);
}
mPackage->ChangeBlackBoxName( mRoot->GetTypeName(), n );
}
+ void Executer::BeginPackage (const std::string &name)
+ {
+ bbtkDebugMessageInc("Core",9,"Executer::BeginPackage(\""<<name<<"\")"
+ <<std::endl);
+ Package* p;
+ try
+ {
+ p = GetGlobalFactory()->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,
ComplexBlackBoxDescriptor* b = new ComplexBlackBoxDescriptor(name);
b->SetScriptFileName(scriptfilename);
- mCurrent.push_back( CBBDefinition( b, pack ) );
+ mOpenDefinition.push_back( CBBDefinition( b, pack ) );
bbtkDebugDecTab("Core",9);
}
<<Current()->GetTypeName()<<"\")"
<<std::endl);
// Does current package exist ?
- std::string pname(mCurrent.back().package);
Package* p;
+
+ std::string pname(mOpenDefinition.back().package);
+ if (pname.size()>0)
+ {
try
{
p = GetGlobalFactory()->GetPackage(pname);
BBTK_STRINGIFY_SYMBOL(BBTK_VERSION));
InsertPackage(p);
}
-
+ }
+ else
+ {
+ p = mOpenPackage.back();
+ }
p->RegisterBlackBox(Current());
- mCurrent.pop_back();
+ mOpenDefinition.pop_back();
}