summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Factory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/Factory.cpp')
-rw-r--r--src/uscxml/Factory.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/uscxml/Factory.cpp b/src/uscxml/Factory.cpp
index b65f088..623dbaf 100644
--- a/src/uscxml/Factory.cpp
+++ b/src/uscxml/Factory.cpp
@@ -12,6 +12,7 @@
# include "uscxml/plugins/ioprocessor/basichttp/libevent/EventIOProcessor.h"
# include "uscxml/plugins/invoker/scxml/USCXMLInvoker.h"
# include "uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.h"
+# include "uscxml/plugins/invoker/filesystem/dirmon/DirMonInvoker.h"
# ifdef UMUNDO_FOUND
# include "uscxml/plugins/invoker/umundo/UmundoInvoker.h"
@@ -29,6 +30,10 @@
# include "uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.h"
# endif
+# ifdef JSC_FOUND
+# include "uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.h"
+# endif
+
# ifdef SWI_FOUND
# include "uscxml/plugins/datamodel/prolog/swi/SWIDataModel.h"
# endif
@@ -99,6 +104,13 @@ Factory::Factory() {
}
#endif
+#ifdef JSC_FOUND
+ {
+ JSCDataModel* dataModel = new JSCDataModel();
+ registerDataModel(dataModel);
+ }
+#endif
+
#ifdef SWI_FOUND
{
SWIDataModel* dataModel = new SWIDataModel();
@@ -116,9 +128,14 @@ Factory::Factory() {
registerInvoker(invoker);
}
{
+ DirMonInvoker* invoker = new DirMonInvoker();
+ registerInvoker(invoker);
+ }
+ {
EventIOProcessor* ioProcessor = new EventIOProcessor();
registerIOProcessor(ioProcessor);
}
+
#endif
}
@@ -223,6 +240,19 @@ Factory* Factory::getInstance() {
return _instance;
}
+void IOProcessorImpl::returnEvent(Event& event) {
+ if (event.invokeid.length() == 0)
+ event.invokeid = _invokeId;
+ if (event.type == 0)
+ event.type = Event::EXTERNAL;
+ if (event.origin.length() == 0)
+ event.origin = "#_" + _invokeId;
+ if (event.origintype.length() == 0)
+ event.origintype = _type;
+
+ _interpreter->receive(event);
+}
+
Factory* Factory::_instance = NULL;
std::string Factory::pluginPath;
} \ No newline at end of file