summaryrefslogtreecommitdiffstats
path: root/src/uscxml/interpreter/InterpreterImpl.h
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-06-18 11:55:39 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-06-18 11:55:39 (GMT)
commit0e0be07906a720ae54e4572d6ac0cb657424550d (patch)
tree7d48c87a9142a5dad06570ca4daf0212475d83f1 /src/uscxml/interpreter/InterpreterImpl.h
parent84bbbd42c3480c40c0355c64899f99f8d588d5c0 (diff)
downloaduscxml-0e0be07906a720ae54e4572d6ac0cb657424550d.zip
uscxml-0e0be07906a720ae54e4572d6ac0cb657424550d.tar.gz
uscxml-0e0be07906a720ae54e4572d6ac0cb657424550d.tar.bz2
Started to port Debugger and issue 87
Diffstat (limited to 'src/uscxml/interpreter/InterpreterImpl.h')
-rw-r--r--src/uscxml/interpreter/InterpreterImpl.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/uscxml/interpreter/InterpreterImpl.h b/src/uscxml/interpreter/InterpreterImpl.h
index be33306..6d047ec 100644
--- a/src/uscxml/interpreter/InterpreterImpl.h
+++ b/src/uscxml/interpreter/InterpreterImpl.h
@@ -97,10 +97,14 @@ public:
return _microStepper.getConfiguration();
}
- void setMonitor(InterpreterMonitor* monitor) {
- _monitor = monitor;
+ void addMonitor(InterpreterMonitor* monitor) {
+ _monitors.insert(monitor);
}
+ void removeMonitor(InterpreterMonitor* monitor) {
+ _monitors.erase(monitor);
+ }
+
/**
MicrostepCallbacks
*/
@@ -132,8 +136,8 @@ public:
_execContent.uninvoke(invoke);
}
- virtual InterpreterMonitor* getMonitor() {
- return _monitor;
+ virtual std::set<InterpreterMonitor*> getMonitors() {
+ return _monitors;
}
/**
@@ -255,7 +259,9 @@ protected:
friend class InterpreterIssue;
friend class TransformerImpl;
friend class USCXMLInvoker;
- friend class SCXMLIOProcessor;
+ friend class SCXMLIOProcessor;
+ friend class DebugSession;
+ friend class Debugger;
X _xmlPrefix;
X _xmlNS;
@@ -280,7 +286,7 @@ protected:
std::map<std::string, IOProcessor> _ioProcs;
std::map<std::string, Invoker> _invokers;
std::set<std::string> _autoForwarders;
- InterpreterMonitor* _monitor;
+ std::set<InterpreterMonitor*> _monitors;
private:
void setupDOM();