merge with master
[framework/osp/net.git] / src / wifi / FNetWifi_WifiDirectDeviceEvent.cpp
index 5a9df47..6f34e6b 100644 (file)
@@ -69,118 +69,138 @@ _WifiDirectDeviceEvent::Construct(void)
 void
 _WifiDirectDeviceEvent::FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg)
 {
-    const _WifiDirectEventArg* pArg = dynamic_cast<const _WifiDirectEventArg*>(&arg);
-    SysTryReturnVoidResult(NID_NET_WIFI, pArg != null, E_INVALID_ARG, "[E_INVALID_ARG] The argument is a null pointer.");
-
-    IWifiDirectDeviceListener* pDeviceListener = dynamic_cast<IWifiDirectDeviceListener*>(&listener);
-    SysTryReturnVoidResult(NID_NET_WIFI, pDeviceListener != null, E_INVALID_ARG,
-            "[E_INVALID_ARG] The result of a dynamic_cast operation is null for external Device listener.");
-
-    _WifiDirectEventType eventType = pArg->GetEventType();
-    WifiDirectDeviceId localDeviceId = pArg->GetDeviceId();
-    result r = pArg->GetError();
-
-    switch (eventType)
-    {
-    case WIFI_DIRECT_DEVICE_EVENT_ACTIVATED:
-        SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_ACTIVATED) : %s",GetErrorMessage(r));
-        pDeviceListener->OnWifiDirectDeviceActivated(localDeviceId, r);
-        break;
-    case WIFI_DIRECT_DEVICE_EVENT_DEACTIVATED:
-         SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_DEACTIVATED) : %s",GetErrorMessage(r));
-        pDeviceListener->OnWifiDirectDeviceDeactivated(localDeviceId, r);
-        break;
-    case WIFI_DIRECT_DEVICE_EVENT_GROUP_CREATED:
-        SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_GROUP_CREATED) : %s",GetErrorMessage(r));
-        {
-            WifiDirectGroupInfo* pGroupInfo = pArg->GetGroupInfo();
-            WifiDirectDeviceInfo* pGroupOwnerInfo = pArg->GetDeviceInfo();
-            WifiDirectGroupMember* pGroupMember = pArg->GetGroupMember();
-            pDeviceListener->OnWifiDirectGroupCreatedN(localDeviceId, *pGroupInfo, *pGroupOwnerInfo, pGroupMember, r);
-        }
-        break;
-    case WIFI_DIRECT_DEVICE_EVENT_SCAN_COMPLETED:
-         SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_SCAN_COMPLETED) : %s",GetErrorMessage(r));
-         {
-             if(!IsFailed(r))
-             {
-                 ArrayList* pSrcDeviceInfoList = dynamic_cast<ArrayList*>(pArg->GetDeviceInfoList());
-                 SysTryCatch(NID_NET_WIFI, pSrcDeviceInfoList != null, , E_SYSTEM, "[E_SYSTEM] Failed to dynamic casting DeviceInfo list.");
-
-                 ArrayList* pDescDeviceInfoList = new (std::nothrow) ArrayList();
-                 SysTryCatch(NID_NET_WIFI, pDescDeviceInfoList != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
-
-                 result res = pDescDeviceInfoList->Construct(*pSrcDeviceInfoList);
-
-                 if (IsFailed(res))
-                 {
-                     delete pDescDeviceInfoList;
-                     pDescDeviceInfoList = null;
-
-                     r = E_SYSTEM;
-                 }
-
-                pDeviceListener->OnWifiDirectScanCompletedN(localDeviceId, pDescDeviceInfoList, r);
-            }
-            else
-            {
-                pDeviceListener->OnWifiDirectScanCompletedN(localDeviceId, null, r);
-            }
-         }
-         break;
-    case WIFI_DIRECT_DEVICE_EVENT_ASSOCIATED:
-        SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_ASSOCIATED) : %s",GetErrorMessage(r));
-        {
-            WifiDirectDeviceInfo* pGroupOwnerInfo = pArg->GetDeviceInfo();
-            if (pGroupOwnerInfo == null)
-            {
-                pDeviceListener->OnWifiDirectAssociationCompleted(localDeviceId, WifiDirectDeviceInfo(), r);
-            }
-            else
-            {
-                pDeviceListener->OnWifiDirectAssociationCompleted(localDeviceId, *pGroupOwnerInfo, r);
-            }
-        }
-        break;
-    case WIFI_DIRECT_DEVICE_EVENT_CONNECTED:
-        SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_CONNECTED) : %s",GetErrorMessage(r));
-        {
-            WifiDirectDeviceInfo* pDeviceInfo = pArg->GetDeviceInfo();
-            if (pDeviceInfo == null)
-            {
-                pDeviceListener->OnWifiDirectConnected(localDeviceId, WifiDirectDeviceInfo(), r);
-            }
-            else
-            {
-                pDeviceListener->OnWifiDirectConnected(localDeviceId, *pDeviceInfo, r);
-            }
-        }
-        break;
-    case WIFI_DIRECT_DEVICE_EVENT_DISCONNECTED:
-    {
-        SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_DISCONNECTED) : %s",GetErrorMessage(r));
-        String macAddress = pArg->GetMacAddress();
-        pDeviceListener->OnWifiDirectDisconnected(localDeviceId, macAddress, r);
-    }
-        break;
-    case WIFI_DIRECT_DEVICE_EVENT_AUTONOMOS_GROUP_CREATED:
-        SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_AUTONOMOS_GROUP_CREATED) : %s",GetErrorMessage(r));
-        pDeviceListener->OnWifiDirectAutonomousGroupCreated(localDeviceId, r);
-        break;
-    case WIFI_DIRECT_DEVICE_EVENT_GROUP_LEFT:
-        SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_GROUP_LEFT) : %s",GetErrorMessage(r));
-        pDeviceListener->OnWifiDirectGroupLeft(localDeviceId, r);
-        break;
-    default:
-         SysLog(NID_NET_WIFI, "An undefined external WifiDirectDevice event occurs. (Type: %d)",eventType);
-         SysAssert(false);
-         break;
-    }
-    return;
-
-CATCH:
-    pDeviceListener->OnWifiDirectScanCompletedN(localDeviceId, null, r);
-
+       const _WifiDirectEventArg* pArg = dynamic_cast< const _WifiDirectEventArg* >(&arg);
+       SysTryReturnVoidResult(NID_NET_WIFI, pArg != null, E_INVALID_ARG, "[E_INVALID_ARG] The argument is a null pointer.");
+
+       IWifiDirectDeviceListener* pDeviceListener = dynamic_cast< IWifiDirectDeviceListener* >(&listener);
+       SysTryReturnVoidResult(NID_NET_WIFI, pDeviceListener != null, E_INVALID_ARG,
+                                                  "[E_INVALID_ARG] The result of a dynamic_cast operation is null for external Device listener.");
+
+       _WifiDirectEventType eventType = pArg->GetEventType();
+       WifiDirectDeviceId localDeviceId = pArg->GetDeviceId();
+       result r = pArg->GetError();
+
+       switch (eventType)
+       {
+       case WIFI_DIRECT_DEVICE_EVENT_ACTIVATED:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_ACTIVATED) : %s", GetErrorMessage(r));
+               pDeviceListener->OnWifiDirectDeviceActivated(localDeviceId, r);
+               break;
+
+       case WIFI_DIRECT_DEVICE_EVENT_DEACTIVATED:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_DEACTIVATED) : %s", GetErrorMessage(r));
+               pDeviceListener->OnWifiDirectDeviceDeactivated(localDeviceId, r);
+               break;
+
+       case WIFI_DIRECT_DEVICE_EVENT_GROUP_CREATED:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_GROUP_CREATED) : %s", GetErrorMessage(r));
+               {
+                       WifiDirectGroupInfo* pGroupInfo = pArg->GetGroupInfo();
+                       WifiDirectDeviceInfo* pGroupOwnerInfo = pArg->GetDeviceInfo();
+                       WifiDirectGroupMember* pGroupMember = pArg->GetGroupMember();
+                       pDeviceListener->OnWifiDirectGroupCreatedN(localDeviceId, *pGroupInfo, *pGroupOwnerInfo, pGroupMember, r);
+               }
+               break;
+       case WIFI_DIRECT_DEVICE_EVENT_SCAN_FOUND:
+           SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_SCAN_FOUND)");
+           {
+               WifiDirectDeviceInfo* pDeviceInfo = pArg->GetDeviceInfo();
+               pDeviceListener->OnWifiDirectRemoteDeviceFound(localDeviceId, *pDeviceInfo);
+           }
+           break;
+       case WIFI_DIRECT_DEVICE_EVENT_SCAN_COMPLETED:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_SCAN_COMPLETED) : %s", GetErrorMessage(r));
+               {
+                       if (!IsFailed(r))
+                       {
+                               ArrayList* pSrcDeviceInfoList = dynamic_cast< ArrayList* >(pArg->GetDeviceInfoList());
+                               if (pSrcDeviceInfoList == null)
+                               {
+                                       SysLogException(NID_NET_WIFI, E_SYSTEM, "[E_SYSTEM] Failed to dynamic casting DeviceInfo list.");
+                                       pDeviceListener->OnWifiDirectScanCompletedN(localDeviceId, null, E_SYSTEM);
+                                       return;
+                               }
+
+                               ArrayList* pDescDeviceInfoList = new (std::nothrow) ArrayList();
+                               if (pSrcDeviceInfoList == null)
+                               {
+                                       SysLogException(NID_NET_WIFI, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+                                       pDeviceListener->OnWifiDirectScanCompletedN(localDeviceId, null, E_SYSTEM);
+                                       return;
+                               }
+
+                               result res = pDescDeviceInfoList->Construct(*pSrcDeviceInfoList);
+
+                               if (IsFailed(res))
+                               {
+                                       delete pDescDeviceInfoList;
+                                       pDescDeviceInfoList = null;
+
+                                       r = E_SYSTEM;
+                               }
+
+                               pDeviceListener->OnWifiDirectScanCompletedN(localDeviceId, pDescDeviceInfoList, r);
+                       }
+                       else
+                       {
+                               pDeviceListener->OnWifiDirectScanCompletedN(localDeviceId, null, r);
+                       }
+               }
+               break;
+
+       case WIFI_DIRECT_DEVICE_EVENT_ASSOCIATED:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_ASSOCIATED) : %s", GetErrorMessage(r));
+               {
+                       WifiDirectDeviceInfo* pGroupOwnerInfo = pArg->GetDeviceInfo();
+                       if (pGroupOwnerInfo == null)
+                       {
+                               pDeviceListener->OnWifiDirectAssociationCompleted(localDeviceId, WifiDirectDeviceInfo(), r);
+                       }
+                       else
+                       {
+                               pDeviceListener->OnWifiDirectAssociationCompleted(localDeviceId, *pGroupOwnerInfo, r);
+                       }
+               }
+               break;
+
+       case WIFI_DIRECT_DEVICE_EVENT_CONNECTED:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_CONNECTED) : %s", GetErrorMessage(r));
+               {
+                       WifiDirectDeviceInfo* pDeviceInfo = pArg->GetDeviceInfo();
+                       if (pDeviceInfo == null)
+                       {
+                               pDeviceListener->OnWifiDirectConnected(localDeviceId, WifiDirectDeviceInfo(), r);
+                       }
+                       else
+                       {
+                               pDeviceListener->OnWifiDirectConnected(localDeviceId, *pDeviceInfo, r);
+                       }
+               }
+               break;
+
+       case WIFI_DIRECT_DEVICE_EVENT_DISCONNECTED:
+               {
+                       SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_DISCONNECTED) : %s", GetErrorMessage(r));
+                       String macAddress = pArg->GetMacAddress();
+                       pDeviceListener->OnWifiDirectDisconnected(localDeviceId, macAddress, r);
+               }
+               break;
+
+       case WIFI_DIRECT_DEVICE_EVENT_AUTONOMOS_GROUP_CREATED:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_AUTONOMOS_GROUP_CREATED) : %s", GetErrorMessage(r));
+               pDeviceListener->OnWifiDirectAutonomousGroupCreated(localDeviceId, r);
+               break;
+
+       case WIFI_DIRECT_DEVICE_EVENT_GROUP_LEFT:
+               SysLog(NID_NET_WIFI, "Firing External Event (Type: WIFI_DIRECT_DEVICE_EVENT_GROUP_LEFT) : %s", GetErrorMessage(r));
+               pDeviceListener->OnWifiDirectGroupLeft(localDeviceId, r);
+               break;
+
+       default:
+               SysLog(NID_NET_WIFI, "An undefined external WifiDirectDevice event occurs. (Type: %d)", eventType);
+               SysAssert(false);
+               break;
+       }
 }
 
 } } } // Tizen::Net::Wifi