summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Interpreter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/Interpreter.h')
-rw-r--r--src/uscxml/Interpreter.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/uscxml/Interpreter.h b/src/uscxml/Interpreter.h
index abccb0a..c509684 100644
--- a/src/uscxml/Interpreter.h
+++ b/src/uscxml/Interpreter.h
@@ -840,6 +840,7 @@ public:
}
static std::map<std::string, boost::weak_ptr<InterpreterImpl> > getInstances();
+ static void addInstance(boost::shared_ptr<InterpreterImpl> instance);
protected:
@@ -890,6 +891,21 @@ public:
};
+class StateTransitionMonitor : public uscxml::InterpreterMonitor {
+public:
+ virtual void beforeTakingTransition(uscxml::Interpreter interpreter, const Arabica::DOM::Element<std::string>& transition, bool moreComing);
+ virtual void beforeExecutingContent(Interpreter interpreter, const Arabica::DOM::Element<std::string>& element);
+ virtual void onStableConfiguration(uscxml::Interpreter interpreter);
+ virtual void beforeProcessingEvent(uscxml::Interpreter interpreter, const uscxml::Event& event);
+ virtual void beforeExitingState(uscxml::Interpreter interpreter, const Arabica::DOM::Element<std::string>& state, bool moreComing);
+ virtual void beforeEnteringState(uscxml::Interpreter interpreter, const Arabica::DOM::Element<std::string>& state, bool moreComing);
+
+protected:
+ void printNodeSet(const Arabica::XPath::NodeSet<std::string>& config);
+ Arabica::XPath::NodeSet<std::string> exitingStates;
+ Arabica::XPath::NodeSet<std::string> enteringStates;
+};
+
}
#endif