6 #ifndef DYNAMIC_GRAPH_TRACER_H
7 #define DYNAMIC_GRAPH_TRACER_H
8 #include <boost/function.hpp>
13 #include <dynamic-graph/entity.h>
14 #include <dynamic-graph/exception-traces.h>
15 #include <dynamic-graph/signal-base.h>
16 #include <dynamic-graph/signal-time-dependent.h>
17 #include <dynamic-graph/time-dependency.h>
19 #include <dynamic-graph/config-tracer.hh>
26 DYNAMIC_GRAPH_ENTITY_DECL();
29 typedef std::list<const SignalBase<int> *> SignalList;
30 SignalList toTraceSignals;
44 TraceStyle traceStyle;
45 static const TraceStyle TRACE_STYLE_DEFAULT = EACH_TIME;
52 typedef std::list<std::ostream *> FileList;
54 typedef std::list<std::string> NameList;
60 Tracer(
const std::string n);
61 virtual ~
Tracer() { closeFiles(); }
63 void addSignalToTrace(
const SignalBase<int> &sig,
64 const std::string &filename =
"");
65 void addSignalToTraceByName(
const std::string &signame,
66 const std::string &filename =
"");
67 void clearSignalToTrace();
69 void openFiles(
const std::string &rootdir,
const std::string &basename,
70 const std::string &suffix);
71 virtual void closeFiles();
74 virtual void openFile(
const SignalBase<int> &sig,
75 const std::string &filename);
78 void setTraceStyle(
const TraceStyle &style) { traceStyle = style; }
79 TraceStyle getTraceStyle() {
return traceStyle; }
81 void setFrenquency(
const double &frqu) { frequency = frqu; }
82 double getFrequency() {
return frequency; }
85 virtual void recordSignal(std::ostream &os,
const SignalBase<int> &sig);
86 int &recordTrigger(
int &dummy,
const int &time);
89 void start() { play =
true; }
90 void stop() { play =
false; }
94 SignalTimeDependent<int, int> triger;
97 DG_TRACER_DLLAPI
friend std::ostream &operator<<(std::ostream &os,
101 void display(std::ostream &os)
const;