26 Severity severity = Severity::Info,
27 const std::source_location& loc = std::source_location::current()
32 const std::source_location& loc = std::source_location::current()
34 Log(msg, Severity::Verbose, loc);
39 const std::source_location& loc = std::source_location::current()
41 Log(msg, Severity::Debug, loc);
46 const std::source_location& loc = std::source_location::current()
48 Log(msg, Severity::Info, loc);
53 const std::source_location& loc = std::source_location::current()
55 Log(msg, Severity::Warning, loc);
60 const std::source_location& loc = std::source_location::current()
62 Log(msg, Severity::Error, loc);
67 const std::source_location& loc = std::source_location::current()
69 Log(msg, Severity::Fatal, loc);
72 bool IsPreferOwnSymbols()
const noexcept;
75 [[nodiscard]]
const std::filesystem::path& GetBaseDir()
const noexcept;
76 [[nodiscard]]
const std::filesystem::path& GetExtensionsDir()
const noexcept;
77 [[nodiscard]]
const std::filesystem::path& GetConfigsDir()
const noexcept;
78 [[nodiscard]]
const std::filesystem::path& GetDataDir()
const noexcept;
79 [[nodiscard]]
const std::filesystem::path& GetLogsDir()
const noexcept;
80 [[nodiscard]]
const std::filesystem::path& GetCacheDir()
const noexcept;
84 IsExtensionLoaded(std::string_view name, std::optional<Constraint> constraint = {})
const noexcept;
85 [[nodiscard]]
const Extension* FindExtension(std::string_view name)
const noexcept;
87 [[nodiscard]] std::vector<const Extension*> GetExtensions()
const;
90 template <
typename Service>
91 [[nodiscard]] std::shared_ptr<Service> Resolve()
const {
92 return GetServices().Resolve<Service>();
95 template <
typename Service>
96 [[nodiscard]] std::shared_ptr<Service> TryResolve()
const noexcept {
97 return GetServices().TryResolve<Service>();
100 [[nodiscard]]
bool operator==(
const Provider& other)
const noexcept;
101 [[nodiscard]]
auto operator<=>(
const Provider& other)
const noexcept;
109 PLUGIFY_NO_DLL_EXPORT_WARNING(std::unique_ptr<Impl> _impl;)