diff options
Diffstat (limited to 'src/uscxml/Factory.cpp')
-rw-r--r-- | src/uscxml/Factory.cpp | 30 |
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 |