Update change log and spec for wrt-plugins-tizen_0.4.44
[platform/framework/web/wrt-plugins-tizen.git] / src / Bluetooth / BluetoothHealthProfileHandlerCallback.cpp
1 //\r
2 // Tizen Web Device API\r
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
4 //\r
5 // Licensed under the Apache License, Version 2.0 (the License);\r
6 // you may not use this file except in compliance with the License.\r
7 // You may obtain a copy of the License at\r
8 //\r
9 // http://www.apache.org/licenses/LICENSE-2.0\r
10 //\r
11 // Unless required by applicable law or agreed to in writing, software\r
12 // distributed under the License is distributed on an "AS IS" BASIS,\r
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14 // See the License for the specific language governing permissions and\r
15 // limitations under the License.\r
16 //\r
17 \r
18 #include <Ecore.h>\r
19 \r
20 #include <JSUtil.h>\r
21 #include <Logger.h>\r
22 \r
23 #include "BluetoothHealthProfileHandlerCallback.h"\r
24 #include "BluetoothHealthProfileHandler.h"\r
25 \r
26 \r
27 using namespace DeviceAPI::Common;\r
28 \r
29 namespace DeviceAPI {\r
30 namespace Bluetooth {\r
31 \r
32 \r
33 class HealthProfileHandlerCallbackData\r
34 {\r
35 public:\r
36     HealthProfileHandlerCallbackData(MultiCallbackUserDataPtr callback, unsigned short dataType, std::string name)\r
37     {\r
38         mCallback = callback;\r
39         mDataType = dataType;\r
40         mName = name;\r
41         mIsRegistering = true;\r
42     };\r
43 \r
44     HealthProfileHandlerCallbackData(MultiCallbackUserDataPtr callback, std::string appID)\r
45     {\r
46         mCallback = callback;\r
47         mAppID = appID;\r
48         mIsRegistering = false;\r
49     };    \r
50 \r
51     virtual ~HealthProfileHandlerCallbackData()\r
52     {\r
53         // Do nothing\r
54     };\r
55 \r
56     MultiCallbackUserDataPtr mCallback;\r
57     unsigned short mDataType;\r
58     std::string mName;\r
59     std::string mAppID;\r
60     bool mIsRegistering;\r
61 };\r
62 \r
63 typedef HealthProfileHandlerCallbackData* HealthProfileHandlerCallbackDataPtr;\r
64 \r
65 \r
66 static Eina_Bool idlerCallback(void *userData){\r
67     HealthProfileHandlerCallbackDataPtr data = static_cast<HealthProfileHandlerCallbackDataPtr>(userData);\r
68 \r
69     if(!data) {\r
70         LoggerW("BluetoothCallbackDataPtr is NULL");\r
71         return false;\r
72     }\r
73 \r
74     if(!(data->mCallback)) {\r
75         LoggerW("MulticallbackUserData is NULL");\r
76         delete data;\r
77         return false;            \r
78     }\r
79 \r
80     if(data->mIsRegistering) {  // registerSinkApplication\r
81         LoggerD("In case of registerSinkApplication");\r
82         BluetoothHealthProfileHandler::getInstance()->returnRegisteringSinkAppResult(data->mDataType, data->mName, data->mCallback);\r
83     }\r
84     else {  // unregisterSinkApplication\r
85         LoggerD("In case of unregisterSinkApplication");\r
86         BluetoothHealthProfileHandler::getInstance()->returnUnregisteringAppResult(data->mAppID, data->mCallback);\r
87     }\r
88 \r
89     delete data;\r
90     return false;\r
91 }\r
92 \r
93 void BluetoothHealthProfileHandlerCallback::syncToAsyncRegisterCB(MultiCallbackUserDataPtr callback, unsigned short dataType, std::string name)\r
94 {\r
95     HealthProfileHandlerCallbackDataPtr data = new HealthProfileHandlerCallbackData(callback, dataType, name);\r
96     ecore_idler_add(idlerCallback, data);\r
97 }\r
98 \r
99 /*\r
100 void BluetoothHealthProfileHandlerCallback::syncToAsyncUnregisterCB(MultiCallbackUserDataPtr callback, JSObjectRef application)\r
101 {\r
102     HealthProfileHandlerCallbackDataPtr data = new HealthProfileHandlerCallbackData(callback, application);\r
103     ecore_idler_add(idlerCallback, data);\r
104 }\r
105 */\r
106 void BluetoothHealthProfileHandlerCallback::syncToAsyncUnregisterCB(MultiCallbackUserDataPtr callback, std::string appID)\r
107 {\r
108     HealthProfileHandlerCallbackDataPtr data = new HealthProfileHandlerCallbackData(callback, appID);\r
109     ecore_idler_add(idlerCallback, data);\r
110 }\r
111 \r
112 \r
113 } // Bluetooth\r
114 } // DeviceAPI\r
115 \r
116 \r