summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Factory.cpp
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2012-12-16 00:12:53 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2012-12-16 00:12:53 (GMT)
commitd779abe6ff76a78f92d229fcf1f006f5cf1f9295 (patch)
tree8eded727de91266ba90610cda760c5274e296886 /src/uscxml/Factory.cpp
parentc78b469790301e3353b561137839c4a2e2ba1673 (diff)
downloaduscxml-d779abe6ff76a78f92d229fcf1f006f5cf1f9295.zip
uscxml-d779abe6ff76a78f92d229fcf1f006f5cf1f9295.tar.gz
uscxml-d779abe6ff76a78f92d229fcf1f006f5cf1f9295.tar.bz2
Take pluginpath as argument
Diffstat (limited to 'src/uscxml/Factory.cpp')
-rw-r--r--src/uscxml/Factory.cpp59
1 files changed, 30 insertions, 29 deletions
diff --git a/src/uscxml/Factory.cpp b/src/uscxml/Factory.cpp
index fdbbbc3..9f16503 100644
--- a/src/uscxml/Factory.cpp
+++ b/src/uscxml/Factory.cpp
@@ -18,37 +18,38 @@
#endif
namespace uscxml {
-
+
Factory::Factory() {
#ifdef BUILD_AS_PLUGINS
- pluma.acceptProviderType<InvokerProvider>();
- pluma.acceptProviderType<IOProcessorProvider>();
- pluma.acceptProviderType<DataModelProvider>();
- pluma.loadFromFolder("/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/lib");
-
- std::vector<InvokerProvider*> invokerProviders;
- pluma.getProviders(invokerProviders);
- for (std::vector<InvokerProvider*>::iterator it = invokerProviders.begin() ; it != invokerProviders.end() ; ++it) {
- Invoker* invoker = (*it)->create();
- registerInvoker(invoker);
- }
-
- std::vector<IOProcessorProvider*> ioProcessorProviders;
- pluma.getProviders(ioProcessorProviders);
- for (std::vector<IOProcessorProvider*>::iterator it = ioProcessorProviders.begin() ; it != ioProcessorProviders.end() ; ++it) {
- IOProcessor* ioProcessor = (*it)->create();
- registerIOProcessor(ioProcessor);
+ if (pluginPath.length() > 0) {
+ pluma.acceptProviderType<InvokerProvider>();
+ pluma.acceptProviderType<IOProcessorProvider>();
+ pluma.acceptProviderType<DataModelProvider>();
+ pluma.loadFromFolder(pluginPath);
+
+ std::vector<InvokerProvider*> invokerProviders;
+ pluma.getProviders(invokerProviders);
+ for (std::vector<InvokerProvider*>::iterator it = invokerProviders.begin() ; it != invokerProviders.end() ; ++it) {
+ Invoker* invoker = (*it)->create();
+ registerInvoker(invoker);
+ }
+
+ std::vector<IOProcessorProvider*> ioProcessorProviders;
+ pluma.getProviders(ioProcessorProviders);
+ for (std::vector<IOProcessorProvider*>::iterator it = ioProcessorProviders.begin() ; it != ioProcessorProviders.end() ; ++it) {
+ IOProcessor* ioProcessor = (*it)->create();
+ registerIOProcessor(ioProcessor);
+ }
+
+ std::vector<DataModelProvider*> dataModelProviders;
+ pluma.getProviders(dataModelProviders);
+ for (std::vector<DataModelProvider*>::iterator it = dataModelProviders.begin() ; it != dataModelProviders.end() ; ++it) {
+ DataModel* dataModel = (*it)->create();
+ registerDataModel(dataModel);
+ }
+
+ pluma.unloadAll();
}
-
- std::vector<DataModelProvider*> dataModelProviders;
- pluma.getProviders(dataModelProviders);
- for (std::vector<DataModelProvider*>::iterator it = dataModelProviders.begin() ; it != dataModelProviders.end() ; ++it) {
- DataModel* dataModel = (*it)->create();
- registerDataModel(dataModel);
- }
-
- pluma.unloadAll();
-
#else
#ifdef UMUNDO_FOUND
{
@@ -150,5 +151,5 @@ namespace uscxml {
}
Factory* Factory::_instance = NULL;
-
+ std::string Factory::pluginPath;
} \ No newline at end of file