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");
}
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;
}
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;
};
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);
switch (search->second) {
case POWER:
- WifiActionPower *wifiActionPower = new WifiActionPower();
+ WifiActionPower *wifiActionPower = new WifiActionPower(handle);
return wifiActionPower;
break;
}