Program: bbtk
Module: $RCSfile: bbtkInterpreter.cxx,v $ $
Language: C++
- Date: $Date: 2008/04/25 08:05:23 $
- Version: $Revision: 1.65 $
+ Date: $Date: 2008/05/15 08:02:36 $
+ Version: $Revision: 1.66 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
//=======================================================================
Interpreter::Pointer Interpreter::New(const std::string& cpp_file)
{
- bbtkDebugMessage("Kernel",9,"Interpreter::New()"<<std::endl);
+ bbtkDebugMessage("Kernel",9,"Interpreter::New('"<<cpp_file<<"')"<<std::endl);
return MakePointer(new Interpreter(cpp_file));
}
//=======================================================================
+ //=======================================================================
+ Interpreter::Pointer Interpreter::New(VirtualExec::Pointer e)
+ {
+ bbtkDebugMessage("Kernel",9,"Interpreter::New(VirtualExec)"<<std::endl);
+ return MakePointer(new Interpreter(e));
+ }
+ //=======================================================================
+
//=======================================================================
Interpreter::Interpreter(const std::string& cpp_file)
- :
- mUser(0),
- mCommandLine(false),
- mThrow(false)
{
+ Init(VirtualExec::Pointer(), cpp_file);
+ }
+ //=======================================================================
+
+ //=======================================================================
+ Interpreter::Interpreter(VirtualExec::Pointer e)
+ {
+ Init(e,"");
+ }
+ //=======================================================================
+ //=======================================================================
+ void Interpreter::Init(VirtualExec::Pointer e, const std::string& cpp_file)
+ {
+ mUser = 0;
+ mCommandLine = false;
+ mThrow = false;
bufferNb =0;
bbtk::MessageManager::RegisterMessageType("echo","Level>0 : Prints the output of the 'print' 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()" <<std::endl);
-
- if (cpp_file.size()!=0)
+ if (e)
+ {
+ mVirtualExecuter = e;
+ }
+ else if (cpp_file.size()!=0)
{
mVirtualExecuter = boost::static_pointer_cast<VirtualExec>(bbtk::Transcriptor::New(cpp_file));
}
}
// Lock this pointer or will auto-destruct !!
- mVirtualExecuter->SetInterpreter(MakePointer(this,true));
+ if (!e) mVirtualExecuter->SetInterpreter(MakePointer(this,true));
// For the time being, comment out previous line, and
// uncomment next line to check Transcriptor