Beta merge 2
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Bluetooth / BluetoothAdapterListener.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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. 
15  */
16
17 #ifndef TIZENAPIS_TIZEN_BLUETOOTH_ADAPTER_LISTENER_H_
18 #define TIZENAPIS_TIZEN_BLUETOOTH_ADAPTER_LISTENER_H_
19
20 #include <map>
21 #include <dpl/shared_ptr.h>
22 #include <dpl/noncopyable.h>
23 #include <API/Bluetooth/IBluetoothAdapterManager.h>
24 #include <CommonsJavaScript/JSCallbackManager.h>
25 #include <API/Bluetooth/EventBTServiceOnConnect.h>
26 #include <API/Bluetooth/EventBTUnregisterRFCOMM.h>
27
28
29 using namespace TizenApis::Api;
30 using namespace TizenApis::Api::Bluetooth;
31 using namespace WrtDeviceApis::Commons;
32 using namespace WrtDeviceApis::CommonsJavaScript;
33
34 namespace TizenApis {
35 namespace Tizen1_0{
36
37         
38 typedef EventAnswerReceiver<EventBTCreateDestroyBonding> EventBTCreateDestroyBondingAnswerReceiver;
39 typedef EventAnswerReceiver<EventBTGetKnownDevices> EventBTGetKnownDevicesAnswerReceiver;
40 typedef EventAnswerReceiver<EventBTGetDevice> EventBTGetDeviceAnswerReceiver;
41 typedef EventAnswerReceiver<EventBTSetPowered> EventBTSetPoweredAnswerReceiver;
42 typedef EventAnswerReceiver<EventBTSetVisible> EventBTSetVisibleAnswerReceiver;
43 typedef EventListener<EventBTOnDiscoveryDevices> EventBTOnDiscoveryDevicesListener;
44 typedef EventAnswerReceiver<EventBTRegisterRFCOMM> EventBTRegisterRFCOMMAnswerReceiver;
45 typedef EventAnswerReceiver<EventBTUnregisterRFCOMMService> EventBTUnregisterRFCOMMServiceAnswerReceiver;
46 typedef EventAnswerReceiver<EventBTStopDiscovery> EventBTStopDiscoveryAnswerReceiver;
47 typedef EventAnswerReceiver<EventBTSetName> EventBTSetNameAnswerReceiver;
48 typedef EventListener<EventBTServiceOnConnect> EventBTServiceOnConnectListener;
49
50
51         
52 class BluetoothAdapterListener : 
53         public EventBTCreateDestroyBondingAnswerReceiver,
54         public EventBTGetKnownDevicesAnswerReceiver,    
55         public EventBTGetDeviceAnswerReceiver,
56         public EventBTSetPoweredAnswerReceiver,
57         public EventBTSetVisibleAnswerReceiver,
58         public EventBTOnDiscoveryDevicesListener,
59         public EventBTRegisterRFCOMMAnswerReceiver,
60         public EventBTUnregisterRFCOMMServiceAnswerReceiver,
61         public EventBTStopDiscoveryAnswerReceiver,
62         public EventBTSetNameAnswerReceiver,
63         public EventBTServiceOnConnectListener
64 {
65
66 private:
67         BluetoothAdapterListener();
68         void MakeErrorJSCallBack(JSCallbackManagerPtr cbm, JSContextRef globalContext, unsigned short error);
69 public:
70         static BluetoothAdapterListener& getInstance();
71         virtual void onAnswerReceived(const EventBTOnDiscoveryDevicesPtr& event);
72         virtual void onAnswerReceived(const EventBTServiceOnConnectPtr& event);
73
74         virtual ~BluetoothAdapterListener();
75 protected:
76
77         virtual void OnAnswerReceived(const EventBTCreateDestroyBondingPtr& event);
78         virtual void OnAnswerReceived(const EventBTGetKnownDevicesPtr& event);
79         virtual void OnAnswerReceived(const EventBTGetDevicePtr& event);
80         virtual void OnAnswerReceived(const EventBTSetPoweredPtr& event);
81         virtual void OnAnswerReceived(const EventBTSetVisiblePtr& event);
82         virtual void OnAnswerReceived(const EventBTUnregisterRFCOMMServicePtr& event);
83         virtual void OnAnswerReceived(const EventBTStopDiscoveryPtr& event);
84         virtual void OnAnswerReceived(const EventBTSetNamePtr& event);
85         virtual void OnAnswerReceived(const EventBTRegisterRFCOMMPtr& event);
86
87
88 };
89
90 typedef DPL::SharedPtr<BluetoothAdapterListener> BluetoothAdapterListenerPtr;
91
92 }
93 }
94
95 #endif