summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Interpreter.h
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-11-13 23:56:53 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-11-13 23:56:53 (GMT)
commit7a1dc775d5d8edcf9193ca4ad7154af5eab18f1c (patch)
treeb681e35b778f5c17d768b0713d8141a17a1dedb9 /src/uscxml/Interpreter.h
parent2bc6ae32bbb67d242436d173c41fabc47626b943 (diff)
downloaduscxml-7a1dc775d5d8edcf9193ca4ad7154af5eab18f1c.zip
uscxml-7a1dc775d5d8edcf9193ca4ad7154af5eab18f1c.tar.gz
uscxml-7a1dc775d5d8edcf9193ca4ad7154af5eab18f1c.tar.bz2
Support for DataModelExtensions
Diffstat (limited to 'src/uscxml/Interpreter.h')
-rw-r--r--src/uscxml/Interpreter.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/uscxml/Interpreter.h b/src/uscxml/Interpreter.h
index 6772a59..70c9c0e 100644
--- a/src/uscxml/Interpreter.h
+++ b/src/uscxml/Interpreter.h
@@ -375,6 +375,10 @@ public:
return _dataModel;
}
+ void addDataModelExtension(DataModelExtension* ext) {
+ _dataModelExtensions.insert(ext);
+ }
+
void setInvoker(const std::string& invokeId, Invoker invoker) {
_dontDestructOnUninvoke.insert(invokeId);
_invokers[invokeId] = invoker;
@@ -428,7 +432,11 @@ public:
static Arabica::XPath::NodeSet<std::string> filterChildType(const Arabica::DOM::Node_base::Type type, const Arabica::DOM::Node<std::string>& node, bool recurse = false);
static Arabica::XPath::NodeSet<std::string> filterChildType(const Arabica::DOM::Node_base::Type type, const Arabica::XPath::NodeSet<std::string>& nodeSet, bool recurse = false);
- static std::list<std::string> tokenizeIdRefs(const std::string& idRefs);
+ static std::list<std::string> tokenizeIdRefs(const std::string& idRefs) {
+ return tokenize(idRefs);
+ }
+ static std::list<std::string> tokenize(const std::string& line, const char seperator = ' ');
+
static std::string spaceNormalize(const std::string& text);
static bool nameMatch(const std::string& eventDescs, const std::string& event);
Arabica::DOM::Node<std::string> findLCCA(const Arabica::XPath::NodeSet<std::string>& states);
@@ -558,7 +566,8 @@ protected:
std::map<std::string, std::pair<InterpreterImpl*, SendRequest> > _sendIds;
std::map<std::string, Invoker> _invokers;
std::map<Arabica::DOM::Node<std::string>, ExecutableContent> _executableContent;
-
+ std::set<DataModelExtension*> _dataModelExtensions;
+
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;
@@ -702,6 +711,10 @@ public:
return _impl->getInvokers();
}
+ void addDataModelExtension(DataModelExtension* ext) {
+ _impl->addDataModelExtension(ext);
+ }
+
void setParentQueue(uscxml::concurrency::BlockingQueue<SendRequest>* parentQueue) {
return _impl->setParentQueue(parentQueue);