11#include <plugify_export.h>
15 class IPlugifyProvider;
17 class IPackageManager;
36 virtual bool Initialize(
const std::filesystem::path& rootDir = {}) = 0;
60 virtual void SetLogger(std::shared_ptr<ILogger> logger) = 0;
67 virtual void Log(std::string_view msg, Severity severity) = 0;
84 virtual std::weak_ptr<IPlugifyProvider>
GetProvider()
const = 0;
115 PLUGIFY_API std::shared_ptr<IPlugify> MakePlugify();
Interface for the Plugify system.
virtual plg::version GetVersion() const =0
Get the version information of the Plugify system.
virtual bool AddRepository(std::string_view repository)=0
Add a repository to the config.
virtual void SetLogger(std::shared_ptr< ILogger > logger)=0
Set the logger for the Plugify system.
virtual std::weak_ptr< IPlugifyProvider > GetProvider() const =0
Get a weak pointer to the Plugify provider.
virtual void Log(std::string_view msg, Severity severity)=0
Log a message with the specified severity level.
virtual bool IsInitialized() const =0
Check if the Plugify system is initialized.
virtual void Terminate()=0
Terminate the Plugify system.
virtual void Update()=0
Update the Plugify system. @noreturn.
virtual std::weak_ptr< IPackageManager > GetPackageManager() const =0
Get a weak pointer to the Package Manager.
virtual std::weak_ptr< IPluginManager > GetPluginManager() const =0
Get a weak pointer to the Plugin Manager.
virtual const Config & GetConfig() const =0
Get the configuration of the Plugify system.
virtual bool Initialize(const std::filesystem::path &rootDir={})=0
Initialize the Plugify system.
Represents configuration settings for a program.