summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp')
-rw-r--r--src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp32
1 files changed, 26 insertions, 6 deletions
diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
index 85c4b9c..05ea460 100644
--- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
+++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
@@ -1,3 +1,22 @@
+/**
+ * @file
+ * @author 2012-2013 Stefan Radomski (stefan.radomski@cs.tu-darmstadt.de)
+ * @copyright Simplified BSD
+ *
+ * @cond
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the FreeBSD license as published by the FreeBSD
+ * project.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * You should have received a copy of the FreeBSD license along with this
+ * program. If not, see <http://www.opensource.org/licenses/bsd-license>.
+ * @endcond
+ */
+
#include "USCXMLInvoker.h"
#include <glog/logging.h>
@@ -9,13 +28,14 @@ namespace uscxml {
#ifdef BUILD_AS_PLUGINS
PLUMA_CONNECTOR
-bool connect(pluma::Host& host) {
+bool pluginConnect(pluma::Host& host) {
host.add( new USCXMLInvokerProvider() );
return true;
}
#endif
USCXMLInvoker::USCXMLInvoker() : _cancelled(false) {
+ _parentQueue._invoker = this;
}
@@ -62,7 +82,7 @@ void USCXMLInvoker::invoke(const InvokeRequest& req) {
if (dataModel) {
}
- _invokedInterpreter.getImpl()->setParentQueue(this);
+ _invokedInterpreter.getImpl()->setParentQueue(&_parentQueue);
// transfer namespace prefixes
_invokedInterpreter.getImpl()->_nsURL = _parentInterpreter->_nsURL;
_invokedInterpreter.getImpl()->_xpathPrefix = _parentInterpreter->_xpathPrefix;
@@ -86,13 +106,13 @@ void USCXMLInvoker::invoke(const InvokeRequest& req) {
}
}
-void USCXMLInvoker::push(const SendRequest& event) {
+void USCXMLInvoker::ParentQueue::push(const SendRequest& event) {
// test 252
- if (_cancelled)
+ if (_invoker->_cancelled)
return;
SendRequest copyEvent(event);
- copyEvent.invokeid = _invokeId;
- _parentInterpreter->receive(copyEvent);
+ copyEvent.invokeid = _invoker->_invokeId;
+ _invoker->_parentInterpreter->receive(copyEvent);
}
} \ No newline at end of file