#pragma once #include "plugin/PluginContainer.h" #include #include #include #include #include #include class PluginManagement { public: static std::vector loadPlugins( const std::set, PluginDataSharedPtrComparator> &pluginDataList, std::vector &trampolineData); static void callInitHooks(const std::vector &plugins, const std::function &pred); static bool doRelocations(const std::vector &plugins, std::vector &trampData, std::map &usedRPls); static bool doRelocation(const std::vector &relocData, std::vector &trampData, uint32_t trampolineID, std::map &usedRPls); static bool DoFunctionPatches(std::vector &plugins); static bool RestoreFunctionPatches(std::vector &plugins); };