diff --git a/include/dynamic-graph/tracer.h b/include/dynamic-graph/tracer.h index c335820a7fb94778355a2dd47c0ab40a6dc5fcad..a56d627bb756387c7d4cdc5e74e0ab215182725e 100644 --- a/include/dynamic-graph/tracer.h +++ b/include/dynamic-graph/tracer.h @@ -73,6 +73,8 @@ namespace dynamicgraph void addSignalToTrace( const SignalBase<int>& sig, const std::string& filename="" ); + void addSignalToTraceByName( const std::string& signame, + const std::string& filename="" ); void clearSignalToTrace (); //void parasite( SignalBase<int>& sig ); void openFiles( const std::string& rootdir, const std::string& basename, diff --git a/src/traces/tracer.cpp b/src/traces/tracer.cpp index 59e30494e27a9ba4a175cb5716f4da50a4184cdf..23dfa18c53cb15be83e5d174ab34656705749445 100644 --- a/src/traces/tracer.cpp +++ b/src/traces/tracer.cpp @@ -75,6 +75,17 @@ addSignalToTrace( const SignalBase<int>& sig, dgDEBUGOUT(15); } +void Tracer:: +addSignalToTraceByName( const string& signame, + const string& filename ) +{ + dgDEBUGIN(15); + istringstream iss( signame ); + SignalBase<int> &sig = g_pool.getSignal(iss); + addSignalToTrace(sig,filename); + dgDEBUGOUT(15); +} + /*! Empty the list of signals to trace. This function * does not modify the file list (it does not close * the files in particular. @@ -263,6 +274,10 @@ commandLine( const std::string& cmdLine } else if( cmdLine=="add" ) { + SignalBase<int> &sig = g_pool.getSignal(cmdArgs); + string r; cmdArgs>>ws>>r; + addSignalToTrace(sig,r); + dgDEBUG(14)<<"Add <" <<sig.getName ()<<"> with nick \""<<r<<"\""<<endl; } else if( cmdLine=="clear" ) { closeFiles (); toTraceSignals.clear (); } @@ -279,7 +294,6 @@ commandLine( const std::string& cmdLine } } - //>>r>>s; dgDEBUGF( 15,"Close files."); closeFiles (); dgDEBUGF( 15,"Open files \"%s\" \"%s\" \"%s\".", @@ -290,15 +304,8 @@ commandLine( const std::string& cmdLine else if( cmdLine=="trace" ) { trace (); } else if( cmdLine=="record" ) { - //unsigned int t; - //cmdArgs >> ws>>t; if(! cmdArgs.good () ) t=0; record (); } -// else if( cmdLine=="parasite" ) -// { -// SignalBase<int> &sig = g_pool.getSignal( cmdArgs ); -// parasite(sig); -// } else if( cmdLine == "start" ) { play=true; } else if( cmdLine == "stop" ) { play=false; } else if( cmdLine == "timeStart" )