diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-08-03 12:10:57 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-08-03 12:10:57 (GMT) |
commit | 6e1a4a67d5b17e92135cd3f5daf51bf044d76e40 (patch) | |
tree | 63d8de9a5ba99dbcd16c6bd867241a7e7466c559 /src/uscxml/Interpreter.h | |
parent | 37f8735a66aadd0e3f019f5edbb9356cf4a7b974 (diff) | |
download | uscxml-6e1a4a67d5b17e92135cd3f5daf51bf044d76e40.zip uscxml-6e1a4a67d5b17e92135cd3f5daf51bf044d76e40.tar.gz uscxml-6e1a4a67d5b17e92135cd3f5daf51bf044d76e40.tar.bz2 |
Got rid of more dynamic_casts
Diffstat (limited to 'src/uscxml/Interpreter.h')
-rw-r--r-- | src/uscxml/Interpreter.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/uscxml/Interpreter.h b/src/uscxml/Interpreter.h index 3cd6016..c3acc98 100644 --- a/src/uscxml/Interpreter.h +++ b/src/uscxml/Interpreter.h @@ -435,6 +435,8 @@ public: Arabica::DOM::Node<std::string> findLCCA(const Arabica::XPath::NodeSet<std::string>& states); virtual Arabica::XPath::NodeSet<std::string> getProperAncestors(const Arabica::DOM::Node<std::string>& s1, const Arabica::DOM::Node<std::string>& s2); + virtual void handleDOMEvent(Arabica::DOM::Events::Event<std::string>& event); + protected: static void run(void*); // static method for thread to run @@ -512,19 +514,19 @@ protected: virtual void executeContent(const Arabica::DOM::NodeList<std::string>& content, bool rethrow = false); virtual void executeContent(const Arabica::XPath::NodeSet<std::string>& content, bool rethrow = false); - void processContentElement(const Arabica::DOM::Node<std::string>& element, + void processContentElement(const Arabica::DOM::Element<std::string>& element, Arabica::DOM::Node<std::string>& dom, std::string& text, std::string& expr); - void processParamChilds(const Arabica::DOM::Node<std::string>& element, + void processParamChilds(const Arabica::DOM::Element<std::string>& element, std::multimap<std::string, Data>& params); - void processDOMorText(const Arabica::DOM::Node<std::string>& element, + void processDOMorText(const Arabica::DOM::Element<std::string>& element, Arabica::DOM::Node<std::string>& dom, std::string& text); - virtual void send(const Arabica::DOM::Node<std::string>& element); - virtual void invoke(const Arabica::DOM::Node<std::string>& element); - virtual void cancelInvoke(const Arabica::DOM::Node<std::string>& element); + virtual void send(const Arabica::DOM::Element<std::string>& element); + virtual void invoke(const Arabica::DOM::Element<std::string>& element); + virtual void cancelInvoke(const Arabica::DOM::Element<std::string>& element); virtual void internalDoneSend(const Arabica::DOM::Element<std::string>& state); static void delayedSend(void* userdata, std::string eventName); void returnDoneEvent(const Arabica::DOM::Node<std::string>& state); @@ -540,7 +542,8 @@ protected: std::map<std::string, Invoker> _invokers; std::map<Arabica::DOM::Node<std::string>, ExecutableContent> _executableContent; - /// TODO: We need to adapt them when the DOM is operated upon + std::map<std::pair<Arabica::DOM::Node<std::string>, Arabica::DOM::Node<std::string> >, Arabica::XPath::NodeSet<std::string> > _cachedProperAncestors; + std::map<Arabica::DOM::Element<std::string>, Arabica::XPath::NodeSet<std::string> > _cachedTargets; std::map<std::string, Arabica::DOM::Element<std::string> > _cachedStates; std::map<std::string, URL> _cachedURLs; |