8 #include <plugify_export.h>
13 class PluginReferenceDescriptorRef;
18 using UniqueId = std::ptrdiff_t;
24 using ModuleOpt = std::optional<ModuleRef>;
30 using PluginOpt = std::optional<PluginRef>;
62 virtual ModuleOpt
FindModule(std::string_view moduleName)
const = 0;
96 virtual PluginOpt
FindPlugin(std::string_view pluginName)
const = 0;
Interface for the plugin manager provided to the user, implemented in the core.
virtual bool Initialize()=0
Initialize the plugin manager.
virtual ModuleOpt FindModuleFromId(UniqueId moduleId) const =0
Find a module by unique identifier.
virtual PluginOpt FindPlugin(std::string_view pluginName) const =0
Find a plugin by name.
virtual ModuleOpt FindModule(std::string_view moduleName) const =0
Find a module by name.
virtual std::vector< ModuleRef > GetModules() const =0
Get a vector of references to all modules.
virtual void Terminate()=0
Terminate the plugin manager.
virtual ModuleOpt FindModuleFromPath(const std::filesystem::path &moduleFilePath) const =0
Find a module by file path.
virtual std::vector< PluginRef > GetPlugins() const =0
Get a vector of references to all plugins.
virtual bool IsInitialized() const =0
Check if the plugin manager is initialized.
virtual PluginOpt FindPluginFromDescriptor(const PluginReferenceDescriptorRef &pluginDescriptor) const =0
Find a plugin by its descriptor.
virtual ModuleOpt FindModuleFromLang(std::string_view moduleLang) const =0
Find a module by language.
virtual PluginOpt FindPluginFromId(UniqueId pluginId) const =0
Find a plugin by unique identifier.
A reference class for the PluginReferenceDescriptor structure.