summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/Factory.cpp
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-06-13 08:52:55 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-06-13 08:52:55 (GMT)
commit053e9bc973fbe88fc41a34064ffadc0deabac58d (patch)
tree6aeee286577159ffcb612d41972a9d18ab685c6d /src/uscxml/plugins/Factory.cpp
parent6e13c7b6e0888323223afd5d2e36e86243df57af (diff)
downloaduscxml-053e9bc973fbe88fc41a34064ffadc0deabac58d.zip
uscxml-053e9bc973fbe88fc41a34064ffadc0deabac58d.tar.gz
uscxml-053e9bc973fbe88fc41a34064ffadc0deabac58d.tar.bz2
Fixed dozens of memory leaks
Diffstat (limited to 'src/uscxml/plugins/Factory.cpp')
-rw-r--r--src/uscxml/plugins/Factory.cpp117
1 files changed, 73 insertions, 44 deletions
diff --git a/src/uscxml/plugins/Factory.cpp b/src/uscxml/plugins/Factory.cpp
index 3600dd1..e551a61 100644
--- a/src/uscxml/plugins/Factory.cpp
+++ b/src/uscxml/plugins/Factory.cpp
@@ -28,23 +28,38 @@
// see http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system
-// we will always include these in a build
+
+#ifdef WITH_IOPROC_SCXML
+# include "uscxml/plugins/ioprocessor/scxml/SCXMLIOProcessor.h"
+#endif
+
+#ifdef WITH_IOPROC_BASICHTTP
+# include "uscxml/plugins/ioprocessor/basichttp/BasicHTTPIOProcessor.h"
+#endif
+
+
#include "uscxml/plugins/datamodel/null/NULLDataModel.h"
-#include "uscxml/plugins/invoker/scxml/USCXMLInvoker.h"
-#include "uscxml/plugins/ioprocessor/scxml/SCXMLIOProcessor.h"
-#include "uscxml/plugins/ioprocessor/basichttp/BasicHTTPIOProcessor.h"
-# ifdef V8_FOUND
+#ifdef WITH_DM_ECMA_V8
# include "uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.h"
-# endif
+#endif
-# ifdef JSC_FOUND
+#ifdef WITH_DM_ECMA_JSC
# include "uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.h"
-# endif
+#endif
-# ifdef LUA_FOUND
+#ifdef WITH_DM_LUA
# include "uscxml/plugins/datamodel/lua/LuaDataModel.h"
-# endif
+#endif
+
+
+#ifdef WITH_INV_SCXML
+# include "uscxml/plugins/invoker/scxml/USCXMLInvoker.h"
+#endif
+
+#ifdef WITH_INV_DIRMON
+# include "uscxml/plugins/invoker/dirmon/DirMonInvoker.h"
+#endif
namespace uscxml {
@@ -69,47 +84,61 @@ std::string Factory::getDefaultPluginPath() {
void Factory::registerPlugins() {
- {
- USCXMLInvoker* invoker = new USCXMLInvoker();
- registerInvoker(invoker);
- }
-
- {
- SCXMLIOProcessor* ioProcessor = new SCXMLIOProcessor();
- registerIOProcessor(ioProcessor);
- }
-
- {
- BasicHTTPIOProcessor* ioProcessor = new BasicHTTPIOProcessor();
- registerIOProcessor(ioProcessor);
- }
-
- {
- NULLDataModel* dataModel = new NULLDataModel();
- registerDataModel(dataModel);
- }
+#ifdef WITH_IOPROC_SCXML
+ {
+ SCXMLIOProcessor* ioProcessor = new SCXMLIOProcessor();
+ registerIOProcessor(ioProcessor);
+ }
+#endif
-#ifdef V8_FOUND
- {
- V8DataModel* dataModel = new V8DataModel();
- registerDataModel(dataModel);
- }
+#ifdef WITH_IOPROC_BASICHTTP
+ {
+ BasicHTTPIOProcessor* ioProcessor = new BasicHTTPIOProcessor();
+ registerIOProcessor(ioProcessor);
+ }
#endif
-#ifdef JSC_FOUND
- {
- JSCDataModel* dataModel = new JSCDataModel();
- registerDataModel(dataModel);
- }
+
+#ifdef WITH_DM_ECMA_V8
+ {
+ V8DataModel* dataModel = new V8DataModel();
+ registerDataModel(dataModel);
+ }
#endif
-#ifdef LUA_FOUND
- {
- LuaDataModel* dataModel = new LuaDataModel();
- registerDataModel(dataModel);
- }
+#ifdef WITH_DM_ECMA_JSC
+ {
+ JSCDataModel* dataModel = new JSCDataModel();
+ registerDataModel(dataModel);
+ }
+#endif
+
+#ifdef WITH_DM_LUA
+ {
+ LuaDataModel* dataModel = new LuaDataModel();
+ registerDataModel(dataModel);
+ }
#endif
+ {
+ NULLDataModel* dataModel = new NULLDataModel();
+ registerDataModel(dataModel);
+ }
+
+
+#ifdef WITH_INV_SCXML
+ {
+ USCXMLInvoker* invoker = new USCXMLInvoker();
+ registerInvoker(invoker);
+ }
+#endif
+
+#ifdef WITH_INV_DIRMON
+ {
+ DirMonInvoker* inv = new DirMonInvoker();
+ registerInvoker(inv);
+ }
+#endif
}