2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file WifiDirectManager.h
19 * @brief This is the header file for WifiDirectManager class.
22 #ifndef _ST_WIFI_DIRECT_MANAGER_H_
23 #define _ST_WIFI_DIRECT_MANAGER_H_
26 #include "StIWifiDirectManagerEventListener.h"
28 class WifiDirectManager
29 : public Tizen::Net::Wifi::IWifiDirectDeviceListener
30 , public Tizen::Net::Wifi::IWifiDirectGroupClientListener
31 , public Tizen::Net::Wifi::IWifiDirectGroupOwnerListener
34 virtual ~WifiDirectManager(void);
36 result Activate(void);
37 result Deactivate(void);
38 bool IsActivated(void);
39 bool IsScanInProgress(void);
41 result Associate(const Tizen::Net::Wifi::WifiDirectDeviceInfo& pRemoteDeviceInfo);
42 result ConnectTo(const Tizen::Net::Wifi::WifiDirectDeviceInfo& pRemoteDeviceInfo);
43 result DisconnectAll(void);
44 result CancelConnect(void);
45 result RemoteDeviceScan(void);
46 result CancelRemoteDeviceScan(void);
48 Tizen::Base::String GetLocalDeviceName(void);
49 Tizen::Net::Wifi::WifiDirectGroupMemberType GetLocalDeviceGroupMemberType(void);
50 Tizen::Net::Wifi::WifiWpsConfigurationMode GetRemoteWpsConfigurationMode(Tizen::Net::Wifi::WifiDirectDevice* pRemoteDevice);
52 Tizen::Base::Collection::IList* GetScanDeviceListInfoN(void);
53 Tizen::Net::Wifi::WifiDirectDeviceInfo* GetScanDeviceListInfoAt(int index);
54 int GetScanDeviceListInfoCount(void);
56 Tizen::Base::Collection::IList* GetBusyDeviceListInfoN(void);
57 Tizen::Net::Wifi::WifiDirectDeviceInfo* GetBusyDeviceListInfoAt(int index);
58 int GetBusyDeviceListInfoCount(void);
60 result QueryAllGroupMemberInfoList(void);
61 Tizen::Base::Collection::IList* GetAllGroupMemberListInfoN(void);
62 Tizen::Net::Wifi::WifiDirectDeviceInfo* GetGroupMemberListInfoAt(int index);
63 int GetGroupMemberInfoListCount(void);
65 void SetIWifiDirectManagerEventListener(const IWifiDirectManagerEventListener& pEventListener);
66 void RemoveIWifiDirectManagerEventListener(void);
67 WifiDirectManagerEvent GetLastEventToPerform(void);
69 static WifiDirectManager* GetInstance();
72 WifiDirectManager(void);
74 result AddLinstener(void);
75 result Construct(void);
76 result RemoveLinstener(void);
78 void InitAllGroupMemberListInfo(void);
79 void InitScanDeviceInfoList(void);
80 void InitBusyDeviceInfoList(void);
82 result AddGroupMemberDeviceInfo(const Tizen::Net::Wifi::WifiDirectDeviceInfo& deviceInfo);
83 result SetAllGroupMemberListInfoByOwner(Tizen::Net::Wifi::WifiDirectGroupMember* groupMember);
85 result DivideDeviceInfoListToBusyAndScan(Tizen::Base::Collection::IList* pDeviceInfoList);
86 result RemoveLocalGroupMemberFromAllGroupMemberListInfo(Tizen::Base::Collection::IList* pAllGroupMemberListInfo);
87 void SetLastEventToPerform(WifiDirectManagerEvent lsatEvent);
88 void SendToEventListener(WifiDirectManagerEvent requestEvent, result r);
90 static void CreateInstance(void);
91 static void DestroyInstance(void);
93 virtual void OnWifiDirectDeviceActivated(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);
94 virtual void OnWifiDirectDeviceDeactivated(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);
95 virtual void OnWifiDirectGroupCreatedN(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId,
96 const Tizen::Net::Wifi::WifiDirectGroupInfo& wifiDirectGroupInfo, const Tizen::Net::Wifi::WifiDirectDeviceInfo& wifiDirectGroupOwnerDeviceInfo,
97 Tizen::Net::Wifi::WifiDirectGroupMember* pWifiDirectMember, result r);
98 virtual void OnWifiDirectScanCompletedN(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId, Tizen::Base::Collection::IList* pWifiDirectDeviceInfoList, result r);
99 virtual void OnWifiDirectAssociationCompleted(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId,
100 const Tizen::Net::Wifi::WifiDirectDeviceInfo& wifiDirectGroupOwnerDeviceInfo, result r);
101 virtual void OnWifiDirectAssociationTerminated(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId,
102 Tizen::Net::Wifi::WifiDirectAssociationTerminationReason reason, result r);
103 virtual void OnWifiDirectGroupOwnerInfoReceived(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId,
104 const Tizen::Net::Wifi::WifiDirectDeviceInfo& wifiDirectGroupOwnerDeviceInfo, result r);
105 virtual void OnWifiDirectAllGroupMemberInfoReceivedN(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId,
106 Tizen::Base::Collection::IList* pWifiDirectDeviceInfoList, result r);
107 virtual void OnWifiDirectClientAssociated(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId,
108 const Tizen::Net::Wifi::WifiDirectDeviceInfo& wifiDirectClientInfo);
109 virtual void OnWifiDirectClientDisassociated(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId, const Tizen::Net::Wifi::WifiDirectDeviceInfo& wifiDirectClientInfo,
110 Tizen::Net::Wifi::WifiDirectAssociationTerminationReason reason);
111 virtual void OnWifiDirectGroupDestroyed(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);
112 virtual void OnWifiDirectGroupMemberInfoServiceStarted(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId,
113 const Tizen::Net::NetConnection* pNetConnection, result r);
114 virtual void OnWifiDirectGroupMemberInfoServiceStopped(Tizen::Net::Wifi::WifiDirectDeviceId localDeviceId, result r);
115 virtual void OnWifiDirectConnected(Tizen::Net::Wifi::WifiDirectDeviceId, const Tizen::Net::Wifi::WifiDirectDeviceInfo&, result){}
116 virtual void OnWifiDirectDisconnected(Tizen::Net::Wifi::WifiDirectDeviceId, const Tizen::Base::String&, result){}
117 virtual void OnWifiDirectAutonomousGroupCreated(Tizen::Net::Wifi::WifiDirectDeviceId, result){}
118 virtual void OnWifiDirectGroupLeft(Tizen::Net::Wifi::WifiDirectDeviceId, result){}
121 static WifiDirectManager* __pWifiDirectManagerInstance;
122 Tizen::Net::Wifi::WifiDirectDevice* __pLocalDevice;
123 Tizen::Base::Collection::IList* __pAllGroupMemberListInfo;
124 Tizen::Base::Collection::IList* __pScanDeviceInfoList;
125 Tizen::Base::Collection::IList* __pBusyDeviceInfoList;
126 IWifiDirectManagerEventListener* __pEventListener;
127 WifiDirectManagerEvent __lastEventToPerform;
130 #endif // _ST_WIFI_DIRECT_MANAGER_H_