summaryrefslogtreecommitdiffstats
path: root/src/uscxml/Factory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/Factory.h')
-rw-r--r--src/uscxml/Factory.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/uscxml/Factory.h b/src/uscxml/Factory.h
index 02ce6b8..3a3080a 100644
--- a/src/uscxml/Factory.h
+++ b/src/uscxml/Factory.h
@@ -23,6 +23,7 @@
#include "uscxml/Common.h"
#include "uscxml/Message.h"
#include "uscxml/Convenience.h"
+#include <string.h>
#ifdef BUILD_AS_PLUGINS
#include "Pluma/Pluma.hpp"
@@ -438,6 +439,7 @@ protected:
class USCXML_API Factory {
public:
Factory(Factory* parentFactory);
+ Factory(const std::string& pluginPath, Factory* parentFactory);
void registerIOProcessor(IOProcessorImpl* ioProcessor);
void registerDataModel(DataModelImpl* dataModel);
@@ -453,6 +455,9 @@ public:
static Factory* getInstance();
+ static void setDefaultPluginPath(const std::string& path);
+ static std::string getDefaultPluginPath();
+
std::map<std::string, DataModelImpl*> _dataModels;
std::map<std::string, std::string> _dataModelAliases;
std::map<std::string, IOProcessorImpl*> _ioProcessors;
@@ -461,17 +466,19 @@ public:
std::map<std::string, std::string> _invokerAliases;
std::map<std::pair<std::string, std::string>, ExecutableContentImpl*> _executableContent;
- static std::string pluginPath;
-
protected:
#ifdef BUILD_AS_PLUGINS
pluma::Pluma pluma;
#endif
- Factory();
+ void registerPlugins();
+
+ Factory(const std::string&);
~Factory();
Factory* _parentFactory;
+ std::string _pluginPath;
static Factory* _instance;
+ static std::string _defaultPluginPath;
};