Remove hardcoded path for multiuser support
[platform/framework/web/wrt-plugins-tizen.git] / src / Bluetooth / BluetoothHealthProfileHandlerCallback.cpp
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 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 #include <Ecore.h>
19
20 #include <JSUtil.h>
21 #include <Logger.h>
22
23 #include "BluetoothHealthProfileHandlerCallback.h"
24 #include "BluetoothHealthProfileHandler.h"
25
26
27 using namespace DeviceAPI::Common;
28
29 namespace DeviceAPI {
30 namespace Bluetooth {
31
32
33 class HealthProfileHandlerCallbackData
34 {
35 public:
36     HealthProfileHandlerCallbackData(MultiCallbackUserDataPtr callback, unsigned short dataType, std::string name)
37     {
38         mCallback = callback;
39         mDataType = dataType;
40         mName = name;
41         mIsRegistering = true;
42     };
43
44     HealthProfileHandlerCallbackData(MultiCallbackUserDataPtr callback, std::string appID)
45     {
46         mCallback = callback;
47         mAppID = appID;
48         mIsRegistering = false;
49     };    
50
51     virtual ~HealthProfileHandlerCallbackData()
52     {
53         // Do nothing
54     };
55
56     MultiCallbackUserDataPtr mCallback;
57     unsigned short mDataType;
58     std::string mName;
59     std::string mAppID;
60     bool mIsRegistering;
61 };
62
63 typedef HealthProfileHandlerCallbackData* HealthProfileHandlerCallbackDataPtr;
64
65
66 static Eina_Bool idlerCallback(void *userData){
67     HealthProfileHandlerCallbackDataPtr data = static_cast<HealthProfileHandlerCallbackDataPtr>(userData);
68
69     if(!data) {
70         LoggerW("BluetoothCallbackDataPtr is NULL");
71         return false;
72     }
73
74     if(!(data->mCallback)) {
75         LoggerW("MulticallbackUserData is NULL");
76         delete data;
77         return false;            
78     }
79
80     if(data->mIsRegistering) {  // registerSinkApplication
81         LoggerD("In case of registerSinkApplication");
82         BluetoothHealthProfileHandler::getInstance()->returnRegisteringSinkAppResult(data->mDataType, data->mName, data->mCallback);
83     }
84     else {  // unregisterSinkApplication
85         LoggerD("In case of unregisterSinkApplication");
86         BluetoothHealthProfileHandler::getInstance()->returnUnregisteringAppResult(data->mAppID, data->mCallback);
87     }
88
89     delete data;
90     return false;
91 }
92
93 void BluetoothHealthProfileHandlerCallback::syncToAsyncRegisterCB(MultiCallbackUserDataPtr callback, unsigned short dataType, std::string name)
94 {
95     HealthProfileHandlerCallbackDataPtr data = new HealthProfileHandlerCallbackData(callback, dataType, name);
96     ecore_idler_add(idlerCallback, data);
97 }
98
99 /*
100 void BluetoothHealthProfileHandlerCallback::syncToAsyncUnregisterCB(MultiCallbackUserDataPtr callback, JSObjectRef application)
101 {
102     HealthProfileHandlerCallbackDataPtr data = new HealthProfileHandlerCallbackData(callback, application);
103     ecore_idler_add(idlerCallback, data);
104 }
105 */
106 void BluetoothHealthProfileHandlerCallback::syncToAsyncUnregisterCB(MultiCallbackUserDataPtr callback, std::string appID)
107 {
108     HealthProfileHandlerCallbackDataPtr data = new HealthProfileHandlerCallbackData(callback, appID);
109     ecore_idler_add(idlerCallback, data);
110 }
111
112
113 } // Bluetooth
114 } // DeviceAPI