summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Interpreter.h
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-07-30 20:41:50 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-07-30 20:41:50 (GMT)
commitb7a2d38bdcee3bf85a32dea7ac74b144d5ef40fa (patch)
treebade629bcca6b6a1417cb45be4349a3c27ea0feb /src/uscxml/Interpreter.h
parentafbd0c4463c6f28ec1cd6ea45a68fdbcfcfeae6c (diff)
downloaduscxml-b7a2d38bdcee3bf85a32dea7ac74b144d5ef40fa.zip
uscxml-b7a2d38bdcee3bf85a32dea7ac74b144d5ef40fa.tar.gz
uscxml-b7a2d38bdcee3bf85a32dea7ac74b144d5ef40fa.tar.bz2
See detailled log
- Forcing Data.Type for Data(String) constructor now, default used to be INTERPRETED. - setDataModel and addIOProcessor on interpreter now - fixed a bug with Data(bool) constructor - various smaller fixes
Diffstat (limited to 'src/uscxml/Interpreter.h')
-rw-r--r--src/uscxml/Interpreter.h52
1 files changed, 39 insertions, 13 deletions
diff --git a/src/uscxml/Interpreter.h b/src/uscxml/Interpreter.h
index 4659b13..8a2b282 100644
--- a/src/uscxml/Interpreter.h
+++ b/src/uscxml/Interpreter.h
@@ -277,10 +277,6 @@ public:
return _httpServlet;
}
- DataModel getDataModel() {
- return _dataModel;
- }
-
void setParentQueue(uscxml::concurrency::BlockingQueue<SendRequest>* parentQueue) {
_parentQueue = parentQueue;
}
@@ -356,10 +352,31 @@ public:
return _sendQueue;
}
+ void addIOProcessor(IOProcessor ioProc) {
+ std::list<std::string> names = ioProc.getNames();
+
+ std::list<std::string>::iterator nameIter = names.begin();
+ while(nameIter != names.end()) {
+ _ioProcessors[*nameIter] = ioProc;
+ _ioProcessors[*nameIter].setType(names.front());
+ _ioProcessors[*nameIter].setInterpreter(this);
+
+ nameIter++;
+ }
+ }
+
const std::map<std::string, IOProcessor>& getIOProcessors() {
return _ioProcessors;
}
+ void setDataModel(const DataModel& dataModel) {
+ _userSuppliedDataModel = true;
+ _dataModel = dataModel;
+ }
+ DataModel getDataModel() {
+ return _dataModel;
+ }
+
const std::map<std::string, Invoker>& getInvokers() {
return _invokers;
}
@@ -407,7 +424,7 @@ public:
static std::list<std::string> tokenizeIdRefs(const std::string& idRefs);
static std::string spaceNormalize(const std::string& text);
- static bool nameMatch(const std::string& transitionEvent, const std::string& event);
+ static bool nameMatch(const std::string& eventDescs, const std::string& event);
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);
@@ -448,6 +465,7 @@ protected:
bool _topLevelFinalReached;
bool _isInitialized;
bool _domIsSetup;
+ bool _userSuppliedDataModel;
bool _isStarted;
bool _isRunning;
@@ -625,9 +643,25 @@ public:
return _impl->getHTTPServlet();
}
+ void setDataModel(const DataModel& dataModel) {
+ _impl->setDataModel(dataModel);
+ }
DataModel getDataModel() {
return _impl->getDataModel();
}
+
+ void addIOProcessor(IOProcessor ioProc) {
+ _impl->addIOProcessor(ioProc);
+ }
+ const std::map<std::string, IOProcessor>& getIOProcessors() {
+ return _impl->getIOProcessors();
+ }
+
+ const std::map<std::string, Invoker>& getInvokers() {
+ return _impl->getInvokers();
+ }
+
+
void setParentQueue(uscxml::concurrency::BlockingQueue<SendRequest>* parentQueue) {
return _impl->setParentQueue(parentQueue);
}
@@ -700,14 +734,6 @@ public:
return _impl->getDelayQueue();
}
- const std::map<std::string, IOProcessor>& getIOProcessors() {
- return _impl->getIOProcessors();
- }
-
- const std::map<std::string, Invoker>& getInvokers() {
- return _impl->getInvokers();
- }
-
bool runOnMainThread(int fps, bool blocking = true) {
return _impl->runOnMainThread(fps, blocking);
}