Update change log and spec for wrt-plugins-tizen_0.4.11
[framework/web/wrt-plugins-tizen.git] / src / Tizen / JSSortMode.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 /**
19  * @file        JSSortMode.h
20  * @author      Kisub Song (kisubs.song@samsung.com)
21  * @version     0.1
22  * @brief       Declaration of the JSSortMode class
23  */
24
25 #ifndef _TIZEN_TIZEN_JS_SORT_MODE_H_
26 #define _TIZEN_TIZEN_JS_SORT_MODE_H_
27
28 #include <JavaScriptCore/JavaScript.h>
29 #include <dpl/shared_ptr.h>
30 #include <CommonsJavaScript/PrivateObject.h>
31 #include <Commons/IEvent.h>
32 #include "SortMode.h"
33
34 namespace DeviceAPI {\rnamespace Tizen {
35
36 typedef WrtDeviceApis::CommonsJavaScript::PrivateObject<DeviceAPI::Tizen::SortModePtr, WrtDeviceApis::CommonsJavaScript::NoOwnership> JSSortModePriv;
37
38 class JSSortMode {
39 public:
40         /*
41          * This initializes this JS class in the JS Engine.
42          */
43         static JSClassRef getClassRef();
44
45         static bool isObjectOfClass(JSContextRef context, JSValueRef value);
46
47         static DeviceAPI::Tizen::SortModePtr getSortMode(JSContextRef context, JSValueRef value);
48
49         static JSObjectRef createJSObject(JSContextRef context, DeviceAPI::Tizen::SortModePtr privateData);
50
51         static JSObjectRef constructor(JSContextRef context,
52                         JSObjectRef constructor,
53                         size_t argumentCount,
54                         const JSValueRef arguments[],
55                         JSValueRef* exception);
56
57 private:
58         /**
59          * The callback invoked when an object is first created.
60          */
61         static void Initialize(JSContextRef context, JSObjectRef object);
62
63         /**
64          * The callback invoked when an object is finalized.
65          */
66         static void Finalize(JSObjectRef object);
67
68         /**
69          * This structure contains properties and callbacks that define a type of object.
70          */
71         static JSClassDefinition m_classInfo;
72
73         /**
74          * This structure describes a statically declared function property.
75          */
76         static JSStaticFunction m_functions[];
77
78         /**
79          * This member variable contains the initialization values for the static properties of this class.
80          * The values are given according to the data structure JSPropertySpec
81          */
82         static JSStaticValue m_property[];
83
84         static JSClassRef m_classRef;
85
86         static DeviceAPI::Tizen::SortModePtr getPrivData(JSObjectRef object);
87
88         static JSValueRef getAttributeName(JSContextRef context,
89                         JSObjectRef object,
90                         JSStringRef propertyName,
91                         JSValueRef* exception);
92
93         static bool setAttributeName(JSContextRef context,
94                         JSObjectRef object,
95                         JSStringRef propertyName,
96                         JSValueRef value,
97                         JSValueRef* exception);
98
99         static JSValueRef getOrder(JSContextRef context,
100                         JSObjectRef object,
101                         JSStringRef propertyName,
102                         JSValueRef* exception);
103
104         static bool setOrder(JSContextRef context,
105                         JSObjectRef object,
106                         JSStringRef propertyName,
107                         JSValueRef value,
108                         JSValueRef* exception);
109 };
110
111 } // Tizen
112 } // DeviceAPI
113
114
115 #endif // _TIZEN_TIZEN_JS_SORT_MODE_H_