X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkInterpreter.cxx;h=ede613aae17a55c7142de17f212c98ed20d9a02e;hb=4ad5b5ee44357ad873bc8c43230defb6d0a79879;hp=febbd934840929bd6dc0002b8ca00ab0d83bd772;hpb=c2a4b1893412e50a3d9abff221938a2d16c4a7cb;p=bbtk.git diff --git a/kernel/src/bbtkInterpreter.cxx b/kernel/src/bbtkInterpreter.cxx index febbd93..ede613a 100644 --- a/kernel/src/bbtkInterpreter.cxx +++ b/kernel/src/bbtkInterpreter.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkInterpreter.cxx,v $ $ Language: C++ - Date: $Date: 2008/04/09 11:16:57 $ - Version: $Revision: 1.59 $ + Date: $Date: 2008/04/18 12:59:15 $ + Version: $Revision: 1.60 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -39,32 +39,38 @@ namespace bbtk { - //Interpreter* Interpreter::mGlobalInterpreter = NULL; + //======================================================================= + Interpreter::Pointer Interpreter::New(const std::string& cpp_file) + { + bbtkDebugMessage("Kernel",9,"Interpreter::New()"<0 : Prints the 'echo' commands of the user.\n\tLevel>1 : Prints the command being interpreted",1); bbtk::MessageManager::RegisterMessageType("Interpreter","Messages of the interpreter",0); bbtkDebugMessageInc("Interpreter",9,"Interpreter::Interpreter()" <(bbtk::Transcriptor::New(cpp_file)); } else { - mExecuter = new bbtk::Executer(); + mExecuter = boost::static_pointer_cast(bbtk::Executer::New()); } - mExecuter->SetInterpreter(this); + + // Lock this pointer or will auto-destruct !! + mExecuter->SetInterpreter(MakePointer(this,true)); // For the time being, comment out previous line, and // uncomment next line to check Transcriptor @@ -291,6 +297,14 @@ bufferNb =0; info.help = "Shows a graphical view of a bbtk pipeline.\n- BlackBoxName : name of the box to view. Default '.' : current box.\n- BlackBoxNameType : name of the type of box to view, ex : 'workspace')"; mCommandDict[info.keyword] = info; + info.keyword = "object"; + info.argmin = 0; + info.argmax = 1; + info.code = cObject; + info.syntax = "object "; + info.help = "Provides debug info on object "; + mCommandDict[info.keyword] = info; + /* info.keyword = "workspace"; info.argmin = 1; @@ -314,10 +328,9 @@ bufferNb =0; */ Interpreter::~Interpreter() { - bbtkDebugMessageInc("Interpreter",9,"Interpreter::~Interpreter()" < Interpreter::~Interpreter()" < in; - Factory* F = mExecuter->GetFactory(); - if (F==0) + + Factory::Pointer F = mExecuter->GetFactory(); + /* + Package::Pointer user = F->GetPackage("user"); + */ + ComplexBlackBoxDescriptor::Pointer workspace = mExecuter->GetWorkspace(); + + if (workspace==0) { delete s; - bbtkError("Interpreter::CreateGUI : could not access the executer factory"); + bbtkError("Interpreter::CreateGUI : could not access the executer workspace"); } - Package* user = F->GetPackage("user"); - ComplexBlackBoxDescriptor* workspace - = (ComplexBlackBoxDescriptor*)user->GetBlackBoxMap().find("workspace")->second; - - BlackBox* box = workspace->GetPrototype()->bbGetBlackBox(boxname); + + + /* + (ComplexBlackBoxDescriptor::Pointer)(user->GetBlackBoxMap().find("workspace")->second.get()); + */ + + BlackBox::Pointer box = workspace->GetPrototype()->bbGetBlackBox(boxname); // BlackBox::InputConnectorMapType incm = box->bbGetInputConnectorMap(); int nb = 0; BlackBox::InputConnectorMapType::iterator i; @@ -1919,7 +1944,7 @@ void Interpreter::NewGUI(const std::string& boxname, // Sets the label of the widget adaptor to the name of the input (*s) << " set "<first<<".Label "<first<first<<".In \"" + (*s) << " set "<first<<".In \" " <bbGetInputAsString(i->first)<<"\"" << std::endl; // store the input name @@ -1943,7 +1968,7 @@ void Interpreter::NewGUI(const std::string& boxname, // Sets the label of the widget adaptor to the name of the input (*s) << " set "<first<<"Widget.Label "<first<first<<"Widget.In \"" + (*s) << " set "<first<<"Widget.In \" " <bbGetInputAsString(i->first)<<"\""<< std::endl; // store the input name in.push_back(i->first); @@ -1964,7 +1989,7 @@ void Interpreter::NewGUI(const std::string& boxname, // Sets the label of the widget adaptor to the name of the input (*s) << " set "<first<<".Title "<first<first<<".In \"" + (*s) << " set "<first<<".In \" " <bbGetInputAsString(i->first)<<"\""<< std::endl; // store the input name in.push_back(i->first); @@ -2014,6 +2039,53 @@ void Interpreter::NewGUI(const std::string& boxname, } //======================================================================= + + + //========================================================================== + void Interpreter::ObjectInfo(const std::string& name) + { + Object:: PrintObjectInfo(name); + } + //========================================================================== + //========================================================================== + std::string Interpreter::GetObjectName() const + { + return std::string("Interpreter"); + } + //========================================================================== + + //========================================================================== + std::string Interpreter::GetObjectInfo() const + { + std::stringstream i; + return i.str(); + } + //========================================================================== + + //========================================================================== +size_t Interpreter::GetObjectSize() const +{ + size_t s = Superclass::GetObjectSize(); + s += Interpreter::GetObjectInternalSize(); + return s; + } + //========================================================================== + //========================================================================== +size_t Interpreter::GetObjectInternalSize() const +{ + size_t s = sizeof(Interpreter); + return s; + } + //========================================================================== + //========================================================================== + size_t Interpreter::GetObjectRecursiveSize() const + { + size_t s = Superclass::GetObjectRecursiveSize(); + s += Interpreter::GetObjectInternalSize(); + s += mExecuter->GetObjectRecursiveSize(); + return s; + } + //========================================================================== }//namespace