22 virtual bool PreprocessPlugins()
override;
23 virtual void LoadPluginsByStage(std::string_view stageName)
override;
24 virtual void UnloadPluginsByStage(std::string_view stageName)
override;
25 virtual std::filesystem::path GetLibraryPath(std::string_view pluginName, std::string_view libraryName)
override;
27 const std::vector<std::filesystem::path>& GetPluginsFolders();
28 virtual void AddPluginsFolder(
const std::filesystem::path& path);
29 virtual void QueueInstall(
const std::filesystem::path& path);
30 virtual void QueueUninstall(
const std::filesystem::path& path);
31 virtual void ProcessQueuedPluginInstallsAndUninstalls();
33 using Iterator = std::vector<Grindstone::Plugins::MetaData>::iterator;
34 using ConstIterator = std::vector<Grindstone::Plugins::MetaData>::const_iterator;
36 Iterator begin()
noexcept;
37 ConstIterator begin()
const noexcept;
39 Iterator end()
noexcept;
40 ConstIterator end()
const noexcept;
43 bool LoadModule(
const std::filesystem::path& path);
44 void UnloadModule(
const std::filesystem::path& path);
45 void ResolvePlugins(std::vector<Grindstone::Plugins::ManifestData>& manifestResults);
47 std::map<std::filesystem::path, Utilities::Modules::Handle> pluginModules;
48 std::set<std::filesystem::path> queuedInstalls{};
49 std::set<std::filesystem::path> queuedUninstalls{};
50 std::vector<Grindstone::Plugins::MetaData> resolvedPluginManifest{};
51 std::vector<std::filesystem::path> pluginsFolders{};