From: Youngjae Shin Date: Thu, 31 Oct 2019 04:05:04 +0000 (+0900) Subject: revise wifi(management of handle) X-Git-Tag: submit/tizen/20200406.072014~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=90d2c4d99a54ca30002a873eb70df8c121298625;p=platform%2Fcore%2Fsystem%2Fmodes-plugins.git revise wifi(management of handle) --- diff --git a/wifi/WifiAction.cpp b/wifi/WifiAction.cpp index 8d9aba8..b81dc0c 100644 --- a/wifi/WifiAction.cpp +++ b/wifi/WifiAction.cpp @@ -22,7 +22,7 @@ MODES_NAMESPACE_USE; WifiAction::WifiAction(const std::string &name) - : PluginAction(name) + : PluginAction(name), handle(NULL) { } diff --git a/wifi/WifiAction.h b/wifi/WifiAction.h index 509ace7..ed27dac 100644 --- a/wifi/WifiAction.h +++ b/wifi/WifiAction.h @@ -31,6 +31,7 @@ public: protected: const std::string& strErr(int err); WifiErrorMessage wifiErrorMessage; + wifi_manager_h handle; }; MODES_NAMESPACE_END diff --git a/wifi/WifiActionPower.cpp b/wifi/WifiActionPower.cpp index 60be1c9..4b4b2e8 100644 --- a/wifi/WifiActionPower.cpp +++ b/wifi/WifiActionPower.cpp @@ -23,38 +23,32 @@ MODES_NAMESPACE_USE; const std::string WifiActionPower::NAME = "power"; -WifiActionPower::WifiActionPower() +WifiActionPower::WifiActionPower(wifi_manager_h wifiHandle) : WifiAction(NAME), oldVal(false) { + handle = wifiHandle; } -void WifiActionPower::activate_cb(wifi_manager_error_e result, void *user_data) +void WifiActionPower::activateCB(wifi_manager_error_e result, void *user_data) { INFO("wifi Activated"); if (WIFI_MANAGER_ERROR_NONE != result) { const std::string &errStr = ((WifiActionPower*)user_data)->strErr(result); - ERR("activate_cb() Fail(%d, %s)", result, errStr.c_str()); + ERR("activateCB() Fail(%d, %s)", result, errStr.c_str()); } } -void WifiActionPower::deactivate_cb(wifi_manager_error_e result, void *user_data) +void WifiActionPower::deactivateCB(wifi_manager_error_e result, void *user_data) { INFO("wifi Deactivated"); if (WIFI_MANAGER_ERROR_NONE != result) { const std::string &errStr = ((WifiActionPower*)user_data)->strErr(result); - ERR("deactivate_cb() Fail(%d, %s)", result, errStr.c_str()); + ERR("deactivateCB() Fail(%d, %s)", result, errStr.c_str()); } } int WifiActionPower::set(bool val) { - wifi_manager_h handle; - int ret = wifi_manager_initialize(&handle); - if (ret != WIFI_MANAGER_ERROR_NONE) { - ERR("wifi_manager_initialize() Fail(%s)", wifiErrorMessage.get(ret).c_str()); - return MODES_ERROR_SYSTEM; - } - wifi_manager_is_activated(handle, &oldVal); if (oldVal == val) { INFO("Already wifi is [%s]", val ? "On" : "Off"); @@ -62,22 +56,19 @@ int WifiActionPower::set(bool val) } if (val) { - int wifiRet = wifi_manager_activate(handle, activate_cb, this); - if (WIFI_MANAGER_ERROR_NONE != wifiRet) { - ERR("wifi_manager_activate() Fail(%d, %s)", wifiRet, strErr(wifiRet).c_str()); - wifi_manager_deinitialize(handle); + int ret = wifi_manager_activate(handle, activateCB, this); + if (WIFI_MANAGER_ERROR_NONE != ret) { + ERR("wifi_manager_activate() Fail(%d, %s)", ret, strErr(ret).c_str()); return MODES_ERROR_SYSTEM; } } else { - int wifiRet = wifi_manager_deactivate(handle, deactivate_cb, this); - if (WIFI_MANAGER_ERROR_NONE != wifiRet) { - ERR("wifi_manager_deactivate() Fail(%d, %s)", wifiRet, strErr(wifiRet).c_str()); - wifi_manager_deinitialize(handle); + int ret = wifi_manager_deactivate(handle, deactivateCB, this); + if (WIFI_MANAGER_ERROR_NONE != ret) { + ERR("wifi_manager_deactivate() Fail(%d, %s)", ret, strErr(ret).c_str()); return MODES_ERROR_SYSTEM; } } - wifi_manager_deinitialize(handle); INFO("Wifi power [%s]", val ? "On" : "Off"); return MODES_ERROR_NONE; } diff --git a/wifi/WifiActionPower.h b/wifi/WifiActionPower.h index 02f01a6..63fb3ff 100644 --- a/wifi/WifiActionPower.h +++ b/wifi/WifiActionPower.h @@ -23,15 +23,15 @@ MODES_NAMESPACE_BEGIN class WifiActionPower : public WifiAction { public: static const std::string NAME; - WifiActionPower(); + WifiActionPower(wifi_manager_h handle); int set(bool val) override; int undo() override; std::string serialize() override; int parse(const std::string &archive) override; private: - static void activate_cb(wifi_manager_error_e result, void *user_data); - static void deactivate_cb(wifi_manager_error_e result, void *user_data); + static void activateCB(wifi_manager_error_e result, void *user_data); + static void deactivateCB(wifi_manager_error_e result, void *user_data); bool oldVal; }; diff --git a/wifi/WifiFactory.cpp b/wifi/WifiFactory.cpp index cf637e5..53b0234 100644 --- a/wifi/WifiFactory.cpp +++ b/wifi/WifiFactory.cpp @@ -22,10 +22,21 @@ MODES_NAMESPACE_USE; WifiFactory::WifiFactory() + : handle(NULL) { actionMap[WifiActionPower::NAME] = POWER; + + int ret = wifi_manager_initialize(&handle); + if (ret != WIFI_MANAGER_ERROR_NONE) + ERR("wifi_manager_initialize() Fail(%d)", ret); } +WifiFactory::~WifiFactory() +{ + wifi_manager_deinitialize(handle); +} + + WifiAction* WifiFactory::createAction(const std::string &key) { auto search = actionMap.find(key); @@ -36,7 +47,7 @@ WifiAction* WifiFactory::createAction(const std::string &key) switch (search->second) { case POWER: - WifiActionPower *wifiActionPower = new WifiActionPower(); + WifiActionPower *wifiActionPower = new WifiActionPower(handle); return wifiActionPower; break; } diff --git a/wifi/WifiFactory.h b/wifi/WifiFactory.h index 259305f..11acb47 100644 --- a/wifi/WifiFactory.h +++ b/wifi/WifiFactory.h @@ -24,7 +24,7 @@ MODES_NAMESPACE_BEGIN class WifiFactory { public: WifiFactory(); - ~WifiFactory() = default; + ~WifiFactory(); WifiAction *createAction(const std::string &key); void destroyAction(WifiAction *action); @@ -34,6 +34,7 @@ private: }; std::map actionMap; + wifi_manager_h handle; }; MODES_NAMESPACE_END