tizen 2.3.1 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / Tizen / JSTizen.h
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012-2013 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_TIZEN_JS_TIZEN_H__
19 #define __TIZEN_TIZEN_JS_TIZEN_H__
20
21 #include <JavaScriptCore/JavaScript.h>
22 #include <CommonsJavaScript/PrivateObject.h>
23 #include "PluginPriv.h"
24
25 namespace DeviceAPI {
26 namespace Tizen {
27
28 typedef WrtDeviceApis::CommonsJavaScript::PrivateObjectT<PluginPrivPtr>::Type TizenPriv;
29
30 class JSTizen {
31 public:
32     static JSClassRef getClassRef();
33
34     static const JSClassDefinition* getClassInfo();
35
36 private:
37     /**
38      * This member variable contains the values which has to be passed
39      * when the this class is embedded into JS Engine.
40      */
41     static JSClassDefinition m_classInfo;
42
43     /**
44      * This structure describes a statically declared function property.
45      */
46     static JSStaticFunction m_function[];
47
48     static JSClassRef m_jsClassRef;
49
50     /**
51      * The callback invoked when an object is first created.
52      */
53     static void initialize(JSContextRef context, JSObjectRef object);
54
55     /**
56      * The callback invoked when an object is finalized.
57      */
58     static void finalize(JSObjectRef object);
59
60     static bool hasProperty(JSContextRef context,
61             JSObjectRef object,
62             JSStringRef propertyName);
63
64     static JSValueRef getProperty(JSContextRef context,
65             JSObjectRef object,
66             JSStringRef propertyName,
67             JSValueRef* exception);
68
69     static bool setProperty(JSContextRef context,
70             JSObjectRef object,
71             JSStringRef propertyName,
72             JSValueRef value,
73             JSValueRef* exception);
74
75     static void getPropertyNames(JSContextRef context,
76             JSObjectRef object,
77             JSPropertyNameAccumulatorRef propertyNames);
78
79 //    static bool hasInstance(JSContextRef context,
80 //            JSObjectRef constructor,
81 //            JSValueRef possibleInstance,
82 //            JSValueRef* exception);
83 //
84 //    static JSValueRef convertToType(JSContextRef context,
85 //            JSObjectRef object,
86 //            JSType type,
87 //            JSValueRef* exception);
88 };
89
90 } // Tizen
91 } // DeviceAPI
92
93 #endif // __TIZEN_TIZEN_JS_TIZEN_H__