merge with master
[framework/osp/net.git] / src / wifi / FNetWifi_WifiDirectEvent.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file    FNetWifiWifiDirectDeviceEvent.cpp
20  * @brief   This is the implementation file for the _WifiDirectEvent Class.
21  *
22  * This header file contains implementation of the _WifiDirectEvent Class.
23  */
24 #include <FBaseRtIEventListener.h>
25 #include <FNetWifiWifiDirectGroupMember.h>
26 #include <FNetWifi_IWifiDirectListener.h>
27 #include <FBaseSysLog.h>
28 #include "FNetWifi_WifiDirectEvent.h"
29 #include "FNetWifi_WifiDirectEventArg.h"
30
31 using namespace Tizen::Base::Collection;
32
33 namespace Tizen { namespace Net { namespace Wifi
34 {
35
36 ////////////////////////////////////////////////////////////////////////////
37 // Lifecycle : Public
38 _WifiDirectEvent::_WifiDirectEvent(void)
39 {
40 }
41
42 _WifiDirectEvent::~_WifiDirectEvent(void)
43 {
44
45 }
46
47 result
48 _WifiDirectEvent::Construct(void)
49 {
50     return _Event::Initialize();
51 }
52
53 ////////////////////////////////////////////////////////////////////////////////
54 /// Operation : Protected
55
56 void
57 _WifiDirectEvent::FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg)
58 {
59         _WifiDirectEventArg* pArg = const_cast< _WifiDirectEventArg* >(dynamic_cast< const _WifiDirectEventArg* >(&arg));
60         SysTryReturnVoidResult(NID_NET_WIFI, pArg != null, E_INVALID_ARG, "[E_INVALID_ARG] The argument is a null pointer.");
61
62         _IWifiDirectListener* pInternalListener = dynamic_cast< _IWifiDirectListener* >(&listener);
63         SysTryReturnVoidResult(NID_NET_WIFI, pInternalListener != null, E_INVALID_ARG,
64                                                    "[E_INVALID_ARG] The result of a dynamic_cast operation is null for internal listener.");
65
66         _WifiDirectEventType eventType = pArg->GetEventType();
67         result r = pArg->GetError();
68
69         switch (eventType)
70         {
71         case WIFI_DIRECT_DEVICE_EVENT_ACTIVATED:
72                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_ACTIVATED) : %s", GetErrorMessage(r));
73                 pInternalListener->OnWifiDirectDeviceActivated(*pArg, r);
74                 break;
75
76         case WIFI_DIRECT_DEVICE_EVENT_DEACTIVATED:
77                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_DEACTIVATED) : %s", GetErrorMessage(r));
78                 pInternalListener->OnWifiDirectDeviceDeactivated(*pArg, r);
79                 break;
80
81         case WIFI_DIRECT_DEVICE_EVENT_GROUP_CREATED:
82                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_GROUP_CREATED) : %s", GetErrorMessage(r));
83                 pInternalListener->OnWifiDirectGroupCreated(*pArg, pArg->GetGroupMemberType(), r);
84                 break;
85
86         case WIFI_DIRECT_DEVICE_EVENT_SCAN_FOUND:
87             SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_SCAN_FOUND)");
88             pInternalListener->OnWifiDirectRemoteDeviceFound(*pArg);
89             break;
90
91         case WIFI_DIRECT_DEVICE_EVENT_SCAN_COMPLETED:
92                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_SCAN_COMPLETED) : %s", GetErrorMessage(r));
93                 pInternalListener->OnWifiDirectScanCompleted(*pArg, r);
94                 break;
95
96         case WIFI_DIRECT_DEVICE_EVENT_ASSOCIATED:
97                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_ASSOCIATED) : %s", GetErrorMessage(r));
98                 pInternalListener->OnWifiDirectAssociationCompleted(*pArg, r);
99                 break;
100
101         case WIFI_DIRECT_GO_EVENT_CLIENT_ASSOCIATED:
102                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_GO_EVENT_CLIENT_ASSOCIATED) : %s", GetErrorMessage(r));
103                 pInternalListener->OnWifiDirectClientAssociated(*pArg);
104                 break;
105
106         case WIFI_DIRECT_GO_EVENT_CLIENT_DISASSOCIATED:
107                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_GO_EVENT_CLIENT_DISASSOCIATED) : %s", GetErrorMessage(r));
108                 {
109                         WifiDirectAssociationTerminationReason reason = pArg->GetDisassociationReason();
110                         pInternalListener->OnWifiDirectClientDisassociated(*pArg, reason);
111                 }
112                 break;
113
114         case WIFI_DIRECT_GO_EVENT_GROUP_DESTROYED:
115                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_GO_EVENT_GROUP_DESTROYED) : %s", GetErrorMessage(r));
116                 pInternalListener->OnWifiDirectGroupDestroyed(*pArg, r);
117                 break;
118
119         case WIFI_DIRECT_GC_EVENT_DISASSOCIATED:
120                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_GC_EVENT_DISASSOCIATED) : %s", GetErrorMessage(r));
121                 pInternalListener->OnWifiDirectAssociationTerminated(*pArg, r);
122                 break;
123
124         case WIFI_DIRECT_DEVICE_EVENT_CONNECTED:
125                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_CONNECTED) : %s", GetErrorMessage(r));
126                 pInternalListener->OnWifiDirectConnected(*pArg, r);
127                 break;
128
129         case WIFI_DIRECT_DEVICE_EVENT_DISCONNECTED:
130                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_DISCONNECTED) : %s", GetErrorMessage(r));
131                 pInternalListener->OnWifiDirectDisconnected(*pArg, r);
132                 break;
133
134         case WIFI_DIRECT_DEVICE_EVENT_AUTONOMOS_GROUP_CREATED:
135                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_AUTONOMOS_GROUP_CREATED) : %s", GetErrorMessage(r));
136                 pInternalListener->OnWifiDirectAutonomousGroupCreated(*pArg, r);
137                 break;
138
139         case WIFI_DIRECT_DEVICE_EVENT_GROUP_LEFT:
140                 SysLog(NID_NET_WIFI, "Firing Internal Event (Type: WIFI_DIRECT_DEVICE_EVENT_GROUP_LEFT) : %s", GetErrorMessage(r));
141                 pInternalListener->OnWifiDirectGroupLeft(*pArg, r);
142                 break;
143
144         default:
145                 SysLog(NID_NET_WIFI, "An undefined internal WifiDirectDevice event occurs. (Type: %d)", eventType);
146                 SysAssert(false);
147                 break;
148         }
149 }
150
151 } } } // Tizen::Net::Wifi