8#include "date_time.hpp"
10#include <plugify_export.h>
15 class PluginReferenceDescriptorHandle;
20 using UniqueId = std::ptrdiff_t;
85 virtual std::vector<ModuleHandle>
GetModules()
const = 0;
Interface for the plugin manager provided to the user, implemented in the core.
virtual bool Initialize()=0
Initialize the plugin manager.
virtual PluginHandle FindPluginFromId(UniqueId pluginId) const =0
Find a plugin by unique identifier.
virtual ModuleHandle FindModuleFromPath(const std::filesystem::path &moduleFilePath) const =0
Find a module by file path.
virtual ModuleHandle FindModuleFromLang(std::string_view moduleLang) const =0
Find a module by language.
virtual void Update(DateTime dt)=0
Updates the package manager.
virtual ModuleHandle FindModuleFromId(UniqueId moduleId) const =0
Find a module by unique identifier.
virtual std::vector< ModuleHandle > GetModules() const =0
Get a vector of handles to all modules.
virtual void Terminate()=0
Terminate the plugin manager.
virtual std::vector< PluginHandle > GetPlugins() const =0
Get a vector of handles to all plugins.
virtual bool IsInitialized() const =0
Check if the plugin manager is initialized.
virtual PluginHandle FindPluginFromDescriptor(const PluginReferenceDescriptorHandle &pluginDescriptor) const =0
Find a plugin by its descriptor.
virtual PluginHandle FindPlugin(std::string_view pluginName) const =0
Find a plugin by name.
virtual ModuleHandle FindModule(std::string_view moduleName) const =0
Find a module by name.
Handle wrapper to access language module's information.
Handle wrapper to access plugin's information.
A handle class for the PluginReferenceDescriptor structure.