summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/invoker
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-07-31 11:31:14 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-07-31 11:31:14 (GMT)
commiteab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5 (patch)
treeda32c5d07f126a6a0c8de42009f13c170198adaa /src/uscxml/plugins/invoker
parent6bf9b12de158cb5fc6c94ab41b84c27968ea9340 (diff)
downloaduscxml-eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5.zip
uscxml-eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5.tar.gz
uscxml-eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5.tar.bz2
More adhoc extensions for interpreters
Diffstat (limited to 'src/uscxml/plugins/invoker')
-rw-r--r--src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp7
-rw-r--r--src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
index f232e52..9506867 100644
--- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
+++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
@@ -40,12 +40,16 @@ USCXMLInvoker::USCXMLInvoker() : _cancelled(false) {
USCXMLInvoker::~USCXMLInvoker() {
+};
+
+void USCXMLInvoker::uninvoke() {
_cancelled = true;
Event event;
event.name = "unblock.and.die";
if (_invokedInterpreter)
_invokedInterpreter.receive(event);
-};
+
+}
boost::shared_ptr<InvokerImpl> USCXMLInvoker::create(InterpreterImpl* interpreter) {
boost::shared_ptr<USCXMLInvoker> invoker = boost::shared_ptr<USCXMLInvoker>(new USCXMLInvoker());
@@ -67,6 +71,7 @@ void USCXMLInvoker::cancel(const std::string sendId) {
}
void USCXMLInvoker::invoke(const InvokeRequest& req) {
+ _cancelled = false;
if (req.src.length() > 0) {
_invokedInterpreter = Interpreter::fromURI(req.src);
} else if (req.dom) {
diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h
index 7d10bf1..f6aa77a 100644
--- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h
+++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.h
@@ -60,6 +60,7 @@ public:
virtual void send(const SendRequest& req);
virtual void cancel(const std::string sendId);
virtual void invoke(const InvokeRequest& req);
+ virtual void uninvoke();
protected:
bool _cancelled;