#pragma once #include "iop_service.h" #include #include #include #include #include namespace ps2x::iop::detail { class PluginCatalog { public: explicit PluginCatalog(IopHost &host); ~PluginCatalog(); PluginCatalog(const PluginCatalog &) = delete; PluginCatalog &operator=(const PluginCatalog &) = delete; bool load(const std::vector &searchPaths, std::vector &profiles, std::vector &diagnostics, std::string *error); private: class DynamicLibrary; IopHost &m_host; std::vector> m_libraries; std::unordered_set m_loadedPaths; }; }