20 #ifndef FACTORY_H_5WKLGPRB
21 #define FACTORY_H_5WKLGPRB
27 #ifdef BUILD_AS_PLUGINS
28 #include "Pluma/Pluma.hpp"
39 class InterpreterImpl;
40 class IOProcessorImpl;
41 class IOProcessorCallbacks;
43 class DataModelCallbacks;
45 class InvokerCallbacks;
46 class ExecutableContentImpl;
58 std::shared_ptr<DataModelImpl> createDataModel(
const std::string& type,
DataModelCallbacks* callbacks);
59 std::shared_ptr<IOProcessorImpl> createIOProcessor(
const std::string& type,
IOProcessorCallbacks* callbacks);
60 std::shared_ptr<InvokerImpl> createInvoker(
const std::string& type,
InvokerCallbacks* interpreter);
61 std::shared_ptr<ExecutableContentImpl> createExecutableContent(
const std::string& localName,
const std::string& nameSpace,
InterpreterImpl* interpreter);
63 bool hasDataModel(
const std::string& type);
64 bool hasIOProcessor(
const std::string& type);
65 bool hasInvoker(
const std::string& type);
66 bool hasExecutableContent(
const std::string& localName,
const std::string& nameSpace);
68 std::map<std::string, IOProcessorImpl*> getIOProcessors();
70 void listComponents();
74 static void setDefaultPluginPath(
const std::string& path);
75 static std::string getDefaultPluginPath();
78 std::map<std::string, DataModelImpl*> _dataModels;
79 std::map<std::string, std::string> _dataModelAliases;
80 std::map<std::string, IOProcessorImpl*> _ioProcessors;
81 std::map<std::string, std::string> _ioProcessorAliases;
82 std::map<std::string, InvokerImpl*> _invokers;
83 std::map<std::string, std::string> _invokerAliases;
87 #ifdef BUILD_AS_PLUGINS
91 void registerPlugins();
96 std::string _pluginPath;
97 static std::string _defaultPluginPath;
Definition: Breakpoint.cpp:26
Abstract base class for all data-model implementations.
Definition: DataModelImpl.h:77
Abstract base class for all invokers.
Definition: InvokerImpl.h:59
Definition: InterpreterImpl.h:51
Abstract base class for IOProcessors implementations.
Definition: IOProcessorImpl.h:54
Callbacks available for every invoker.
Definition: InvokerImpl.h:43
Callbacks available for every data-model.
Definition: DataModelImpl.h:47
Callbacks available for every IO processor.
Definition: IOProcessorImpl.h:36
Abstract base class fo all elements of executable content.
Definition: ExecutableContentImpl.h:44