bbstd::ExecBbiCommand Class Reference

#include <bbstdExecBbiCommand.h>

List of all members.

Public Member Functions

 BBTK_BLACK_BOX_INTERFACE (ExecBbiCommand, bbtk::AtomicBlackBox)
 BBTK_DECLARE_INPUT (In, std::string)
 BBTK_PROCESS (DoProcess)
void DoProcess ()

Protected Member Functions

virtual void bbUserConstructor ()


Detailed Description

Definition at line 40 of file bbstdExecBbiCommand.h.


Member Function Documentation

bbstd::ExecBbiCommand::BBTK_BLACK_BOX_INTERFACE ( ExecBbiCommand  ,
bbtk::AtomicBlackBox   
)

bbstd::ExecBbiCommand::BBTK_DECLARE_INPUT ( In  ,
std::string   
)

bbstd::ExecBbiCommand::BBTK_PROCESS ( DoProcess   ) 

void bbstd::ExecBbiCommand::DoProcess (  ) 

Definition at line 48 of file bbstdExecBbiCommand.cxx.

00049     {
00050 
00051       // Look for the interpreter
00052       bbtk::Interpreter::Pointer I;
00053           bool delete_inter = false;
00054           if (bbGetParent() != 0)
00055           {
00056           bbtk::Factory::Pointer f
00057                 = ((bbtk::ComplexBlackBoxDescriptor*)bbGetParent()
00058                   ->bbGetDescriptor().get())->GetFactory();
00059           if ((f != 0)&&
00060               (f->GetExecuter()))
00061             {
00062               I = f->GetExecuter()->GetInterpreter();
00063             }
00064           }
00065       if (I==0)
00066           {
00067           //      bbtkError("ExecBbiCommand::DoProcess() : could not find interpreter");
00068           I = bbtk::Interpreter::New();
00069           delete_inter = true;
00070           }
00071 
00072       unsigned int i;
00073 
00074       bool ok=true;
00075       int pos1=0,pos2;
00076       pos2 = bbGetInputIn().find(";",pos1);
00077       std::string ccommand;
00078       while (ok==true)
00079             {
00080           if (pos2==-1) 
00081            {
00082             ok=false;
00083             ccommand=bbGetInputIn().substr(pos1,bbGetInputIn().length()-pos1 );
00084            } else {
00085             ccommand=bbGetInputIn().substr(pos1,pos2-pos1);
00086           }
00087           for ( i=0 ; i < ccommand.length() ; i++)
00088           {
00089             if (ccommand[i]==39)
00090             {
00091                   ccommand[i]=34;
00092         }
00093      }
00094 
00095           I->InterpretLine( ccommand );
00096           pos1=pos2+1;
00097           pos2 = bbGetInputIn().find(";",pos2+1);
00098 
00099         }
00100       
00101 //      if (delete_inter) delete I;
00102 
00103    /*  Grrr  not works in windows
00104         char * pch;
00105         pch = strtok (bbGetInputIn(),";");
00106         while (pch != NULL)
00107         {
00108                 std::string ccommand(pch);
00109                 printf("EED  ExecBbiCommand::DoProcess 1.1  %s\n",ccommand.c_str());
00110                 for ( i=0 ; i < ccommand.length() ; i++)
00111                 {
00112                         if (ccommand[i]==39)
00113                         {
00114                                 ccommand[i]=34;
00115                         }
00116                 }
00117 
00118                 printf("EED  ExecBbiCommand::DoProcess 2  %s\n",ccommand.c_str());
00119                 bbtk::Interpreter::mGlobalInterpreter->InterpretLine( ccommand );
00120         pch = strtok (NULL, ";");
00121         }
00122   */
00123   }

void bbstd::ExecBbiCommand::bbUserConstructor (  )  [protected, virtual]

Definition at line 43 of file bbstdExecBbiCommand.cxx.

00044   { 
00045     bbSetInputIn("help");
00046   }


The documentation for this class was generated from the following files:

Generated on Tue Oct 21 16:06:50 2008 for std by  doxygen 1.5.6