tizen 2.3.1 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / Bluetooth / JSBluetoothHealthChannel.h
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 #ifndef __TIZEN_JS_BLUETOOTH_HEALTH_CHANNEL_H__
19 #define __TIZEN_JS_BLUETOOTH_HEALTH_CHANNEL_H__
20
21 #include <JavaScriptCore/JavaScript.h>
22
23 #include "BluetoothHealthChannel.h"
24
25 namespace DeviceAPI {
26 namespace Bluetooth {
27
28 class JSBluetoothHealthChannel
29 {
30 public:
31     static const JSClassDefinition* getClassInfo();
32     static const JSClassRef getClassRef();
33     static JSObjectRef createJSObject(JSContextRef context, BluetoothHealthChannelPtr channel);
34
35 private:
36
37     /**
38      * The callback invoked when an object is first created.
39      */
40     static void initialize(JSContextRef context,
41             JSObjectRef object);
42
43     /**
44      * The callback invoked when an object is finalized.
45      */
46     static void finalize(JSObjectRef object);
47
48     static JSValueRef getProperty(JSContextRef context,
49             JSObjectRef object,
50             JSStringRef propertyName,
51             JSValueRef* exception);
52
53     static JSValueRef close(JSContextRef context,
54         JSObjectRef object,
55         JSObjectRef thisObject,
56         size_t argumentCount,
57         const JSValueRef arguments[],
58         JSValueRef* exception);
59
60     static JSValueRef sendData(JSContextRef context,
61         JSObjectRef object,
62         JSObjectRef thisObject,
63         size_t argumentCount,
64         const JSValueRef arguments[],
65         JSValueRef* exception);
66
67     static JSValueRef setListener(JSContextRef context,
68         JSObjectRef object,
69         JSObjectRef thisObject,
70         size_t argumentCount,
71         const JSValueRef arguments[],
72         JSValueRef* exception);
73
74     static JSValueRef unsetListener(JSContextRef context,
75         JSObjectRef object,
76         JSObjectRef thisObject,
77         size_t argumentCount,
78         const JSValueRef arguments[],
79         JSValueRef* exception);
80
81     /**
82      * This member variable contains the values which has to be passed
83      * when the this class is embedded into JS Engine.
84      */
85     static JSClassDefinition m_classInfo;
86
87     /**
88      * This structure describes a statically declared function property.
89      */
90     static JSStaticFunction m_function[];
91
92     /**
93      * This member variable contains the initialization values for the
94      * properties of this class. The values are given according to
95      * the data structure JSPropertySpec
96      */
97     static JSStaticValue m_property[];
98
99     static JSClassRef m_jsClassRef;
100 };
101
102
103 } // Bluetooth
104 } // DeviceAPI
105
106 #endif // __TIZEN_JS_BLUETOOTH_HEALTH_CHANNEL_H__