38 class NodeLoaderPlugin;
46 using Factory = std::function<std::shared_ptr<NodePlugin>(
Node *node )>;
51 const char *class_name,
52 const char *base_class_name,
54 const std::vector<PlugDescriptor> &plug_desc,
55 const char *ui_descriptor =
"" 61 const char *class_name,
62 const char *base_class_name,
63 const std::vector<PlugDescriptor> &plug_desc,
64 const char *ui_descriptor =
"" 75 const char *parent_type_name =
"Value" 85 const char *type_name,
88 const char *parent_type_name =
"Value" 100 #define MAQUINA_DECLARE_PLUGINS extern "C" MAQUINA_DLL_EXPORT int rumba_sdk_version; int rumba_sdk_version = RUMBA_SDK_BETA_VERSION; 101 #define MAQUINA_REGISTER_PLUGINS extern "C" MAQUINA_DLL_EXPORT void rumba_register_plugins( ::maquina::Registry &r )
virtual ~Registry()
Definition: Registry.h:43
const_pointer c_str() const noexcept
Definition: StringView.h:124
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
Registry class used to declare and register a plug-in node.
Definition: Registry.h:40
MAQUINA_EXPORT Value default_value(const maquina::StringView &type_name)
Return the default value of a type.
virtual void register_node(const char *class_name, const char *base_class_name, Factory factory, const std::vector< PlugDescriptor > &plug_desc, const char *ui_descriptor="")=0
Declare a plug-in node.
StringView type_name() const
Return the type name of the Value.
std::function< std::shared_ptr< NodePlugin >(Node *node)> Factory
The factory function prototype.
Definition: Registry.h:46
#define MAQUINA_EXPORT
Definition: Export.h:31
void register_value(const char *parent_type_name="Value")
Register a new type of value.
Definition: Registry.h:74
virtual void register_node_loader(const std::shared_ptr< NodeLoaderPlugin > &node_loader)=0
Declare a node loader plug-in.
Base class of all Rumba nodes.
Definition: Node.h:37