diff options
Diffstat (limited to 'src/uscxml/Interpreter.h')
-rw-r--r-- | src/uscxml/Interpreter.h | 16 |
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 |