diff options
Diffstat (limited to 'src/uscxml/plugins/Factory.h')
-rw-r--r-- | src/uscxml/plugins/Factory.h | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/src/uscxml/plugins/Factory.h b/src/uscxml/plugins/Factory.h index 0026df1..986ff5f 100644 --- a/src/uscxml/plugins/Factory.h +++ b/src/uscxml/plugins/Factory.h @@ -44,6 +44,8 @@ class DataModelCallbacks; class InvokerImpl; class InvokerCallbacks; class ExecutableContentImpl; +class MicroStepImpl; +class MicroStepCallbacks; class USCXML_API Factory { public: @@ -51,21 +53,31 @@ public: Factory(const std::string& pluginPath, Factory* parentFactory); void registerIOProcessor(IOProcessorImpl* ioProcessor); - void registerDataModel(DataModelImpl* dataModel); - void registerInvoker(InvokerImpl* invoker); - void registerExecutableContent(ExecutableContentImpl* executableContent); + bool hasIOProcessor(const std::string& type); + std::shared_ptr<IOProcessorImpl> createIOProcessor(const std::string& type, IOProcessorCallbacks* callbacks); - std::shared_ptr<DataModelImpl> createDataModel(const std::string& type, DataModelCallbacks* callbacks); - std::shared_ptr<IOProcessorImpl> createIOProcessor(const std::string& type, IOProcessorCallbacks* callbacks); - std::shared_ptr<InvokerImpl> createInvoker(const std::string& type, InvokerCallbacks* interpreter); - std::shared_ptr<ExecutableContentImpl> createExecutableContent(const std::string& localName, const std::string& nameSpace, InterpreterImpl* interpreter); + void registerDataModel(DataModelImpl* dataModel); + bool hasDataModel(const std::string& type); + std::shared_ptr<DataModelImpl> createDataModel(const std::string& type, DataModelCallbacks* callbacks); - bool hasDataModel(const std::string& type); - bool hasIOProcessor(const std::string& type); - bool hasInvoker(const std::string& type); - bool hasExecutableContent(const std::string& localName, const std::string& nameSpace); + void registerInvoker(InvokerImpl* invoker); + bool hasInvoker(const std::string& type); + std::shared_ptr<InvokerImpl> createInvoker(const std::string& type, InvokerCallbacks* interpreter); - std::map<std::string, IOProcessorImpl*> getIOProcessors(); + void registerExecutableContent(ExecutableContentImpl* executableContent); + bool hasExecutableContent(const std::string& localName, const std::string& nameSpace); + std::shared_ptr<ExecutableContentImpl> createExecutableContent(const std::string& localName, const std::string& nameSpace, InterpreterImpl* interpreter); + + + + +#ifndef FEATS_ON_CMD + void registerMicrostepper(MicroStepImpl* microStepper); + bool hasMicroStepper(const std::string& name); + std::shared_ptr<MicroStepImpl> createMicroStepper(const std::string& name, MicroStepCallbacks* callbacks); +#endif + + std::map<std::string, IOProcessorImpl*> getIOProcessors(); void listComponents(); @@ -83,6 +95,9 @@ protected: std::map<std::string, std::string> _invokerAliases; std::map<std::pair<std::string, std::string>, ExecutableContentImpl*> _executableContent; +#ifndef FEATS_ON_CMD + std::map<std::string, MicroStepImpl*> _microSteppers; +#endif #ifdef BUILD_AS_PLUGINS pluma::Pluma pluma; @@ -99,7 +114,6 @@ protected: }; - } #endif /* end of include guard: FACTORY_H_5WKLGPRB */ |