6 #include <plugify/config.hpp>
7 #include <plugify/version.hpp>
8 #include <plugify_export.h>
13 class IPlugifyProvider;
15 class IPackageManager;
16 enum class Severity : uint8_t;
34 virtual bool Initialize(
const std::filesystem::path& rootDir = {}) = 0;
52 virtual void SetLogger(std::shared_ptr<ILogger> logger) = 0;
59 virtual void Log(std::string_view msg, Severity severity) = 0;
76 virtual std::weak_ptr<IPlugifyProvider>
GetProvider()
const = 0;
107 PLUGIFY_API std::shared_ptr<IPlugify> MakePlugify();
Interface for 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 std::weak_ptr< IPluginManager > GetPluginManager() const =0
Get a weak pointer to the Plugin Manager.
virtual Version GetVersion() const =0
Get the version information of the Plugify system.
virtual const Config & GetConfig() const =0
Get the configuration of the Plugify system.
virtual std::weak_ptr< IPackageManager > GetPackageManager() const =0
Get a weak pointer to the Package Manager.
virtual bool Initialize(const std::filesystem::path &rootDir={})=0
Initialize the Plugify system.
Represents a version number with major, minor, patch, and tweak components.
Represents configuration settings for a program.