The method can be used to register and load a user-defined plugin. All other previously loaded plugins will be reloaded. Signed-off-by: Yordan Karadzhov <ykaradzhov@xxxxxxxxxx> --- kernel-shark/src/KsUtils.cpp | 17 +++++++++++++++++ kernel-shark/src/KsUtils.hpp | 3 +++ 2 files changed, 20 insertions(+) diff --git a/kernel-shark/src/KsUtils.cpp b/kernel-shark/src/KsUtils.cpp index d7b1753..4d05bda 100644 --- a/kernel-shark/src/KsUtils.cpp +++ b/kernel-shark/src/KsUtils.cpp @@ -596,6 +596,23 @@ void KsPluginManager::unregisterPlugin(const QString &plugin) } } +/** @brief Add to the list and load a user-provided plugin. All other + * previously loaded plugins will be reloaded. + * + * @param fileName: the library file (.so) of the plugin. +*/ +void KsPluginManager::addPlugin(const QString &fileName) +{ + kshark_context *kshark_ctx(nullptr); + + if (!kshark_instance(&kshark_ctx)) + return; + + kshark_handle_plugins(kshark_ctx, KSHARK_PLUGIN_CLOSE); + registerPlugin(fileName); + kshark_handle_plugins(kshark_ctx, KSHARK_PLUGIN_INIT); +} + /** Unload all plugins. */ void KsPluginManager::unloadAll() { diff --git a/kernel-shark/src/KsUtils.hpp b/kernel-shark/src/KsUtils.hpp index cb95b4f..ae7f6d1 100644 --- a/kernel-shark/src/KsUtils.hpp +++ b/kernel-shark/src/KsUtils.hpp @@ -210,6 +210,9 @@ public: void registerPlugin(const QString &plugin); void unregisterPlugin(const QString &plugin); + + void addPlugin(const QString &fileName); + void unloadAll(); void updatePlugins(QVector<int> pluginId); -- 2.19.1
![]() |