From: Youngjae Shin Date: Tue, 20 Sep 2022 07:05:56 +0000 (+0900) Subject: revise plugin create/delete symbols X-Git-Tag: accepted/tizen/unified/20220921.091813^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Faccepted%2Ftizen_8.0_unified;p=platform%2Fcore%2Fsystem%2Fmodes.git revise plugin create/delete symbols --- diff --git a/include/ModesPlugin.h b/include/ModesPlugin.h index 846a199..7a69ded 100644 --- a/include/ModesPlugin.h +++ b/include/ModesPlugin.h @@ -20,6 +20,11 @@ #include +#define MODES_PLUGIN_CREATE objectCreate +#define MODES_PLUGIN_DELETE objectDelete +#define TO_STR(s) #s +#define DEFINE_TO_STR(s) TO_STR(s) + namespace ModeSupervisorNamespace { class Plugin { @@ -27,8 +32,10 @@ class Plugin { Plugin() = default; virtual ~Plugin() = default; - void setName(const std::string &pluginName) { name = pluginName; } + static constexpr const char *const NEW_PLUGIN = DEFINE_TO_STR(MODES_PLUGIN_CREATE); + static constexpr const char *const DELETE_PLUGIN = DEFINE_TO_STR(MODES_PLUGIN_DELETE); + void setName(const std::string &pluginName) { name = pluginName; } std::string getName() { return name; } // It should returns dynamic allocated instance of PluginAction @@ -48,3 +55,6 @@ class Plugin { typedef Plugin *(*createFunc)(void); typedef void (*destroyFunc)(Plugin *); } // namespace ModeSupervisorNamespace + +#undef TO_STR +#undef DEFINE_TO_STR diff --git a/plugin/TestPlugin.cpp b/plugin/TestPlugin.cpp index 7e16afd..fba383b 100644 --- a/plugin/TestPlugin.cpp +++ b/plugin/TestPlugin.cpp @@ -31,12 +31,12 @@ class TestPlugin : public Plugin { void deleteAction(PluginAction *piAction) override; }; -extern "C" API Plugin *objectCreate(void) +extern "C" API Plugin *MODES_PLUGIN_CREATE(void) { return new TestPlugin(); } -extern "C" API void objectDelete(Plugin *plugin) +extern "C" API void MODES_PLUGIN_DELETE(Plugin *plugin) { delete plugin; } diff --git a/supervisor/PluginMapper.cpp b/supervisor/PluginMapper.cpp index cd38e19..bc07f1c 100644 --- a/supervisor/PluginMapper.cpp +++ b/supervisor/PluginMapper.cpp @@ -75,7 +75,7 @@ PluginMapper::PluginPair PluginMapper::loadClass(const std::string &pluginFile) } /* load the symbols */ - createFunc newPlugin = (createFunc)dlsym(handle, "objectCreate"); + createFunc newPlugin = (createFunc)dlsym(handle, Plugin::NEW_PLUGIN); if (nullptr == newPlugin) { ERR("dlsym(objectCreate) Fail(Plugin[%s] error[%s])", pluginFile.c_str(), dlerror()); dlclose(handle); @@ -101,7 +101,7 @@ int PluginMapper::unloadClass(const PluginPair &pluginPair) RETVM_IF(nullptr == handle, MODES_ERROR_SYSTEM, "No handle(%s)", pluginName.c_str()); - destroyFunc deletePlugin = (destroyFunc)dlsym(handle, "objectDelete"); + destroyFunc deletePlugin = (destroyFunc)dlsym(handle, Plugin::DELETE_PLUGIN); if (nullptr == deletePlugin) { ERR("dlsym(objectDelete) Fail(plugin[%s] error[%s])", pluginName.c_str(), dlerror()); dlclose(handle);