Git Init
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Application / JSApplicationInformationArray.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef TIZENAPIS_TIZEN_JS_APPLICATION_INFORMATION_ARRAY_H_
18 #define TIZENAPIS_TIZEN_JS_APPLICATION_INFORMATION_ARRAY_H_
19
20 #include <JavaScriptCore/JavaScript.h>
21 #include <CommonsJavaScript/PrivateObject.h>
22 #include <API/Application/ApplicationInformation.h>
23
24 namespace TizenApis {
25 namespace Tizen1_0 {
26 namespace Application {
27
28 typedef WrtDeviceApis::CommonsJavaScript::PrivateObjectT<Api::Application::ApplicationInformationArrayPtr>::Type JSApplicationInformationArrayPriv;
29
30 class JSApplicationInformationArray
31 {
32   public:
33
34     static const JSClassDefinition* getClassInfo();
35
36     static JSClassRef getClassRef();
37
38     static JSObjectRef createArray(JSContextRef context,
39             const Api::Application::ApplicationInformationArrayPtr &appinfoArray);
40
41         static bool isObjectOfClass(JSContextRef context, JSValueRef value);
42
43         static Api::Application::ApplicationInformationArrayPtr 
44                 getApplicationInformationArray(JSContextRef context, JSValueRef value);
45
46   private:
47
48     /**
49      * The callback invoked when an object is first created.
50      */
51     static void initialize(JSContextRef context,
52             JSObjectRef object);
53
54     /**
55      * The callback invoked when an object is finalized.
56      */
57     static void finalize(JSObjectRef object);
58
59     static JSValueRef getLength(JSContextRef context,
60             JSObjectRef object,
61             JSStringRef propertyName,
62             JSValueRef* exception);
63
64     static bool hasProperty(JSContextRef context,
65             JSObjectRef object,
66             JSStringRef propertyName);
67
68     static JSValueRef getProperty(JSContextRef context,
69             JSObjectRef object,
70             JSStringRef propertyName,
71             JSValueRef* exception);
72
73     static bool setProperty(JSContextRef context,
74             JSObjectRef object,
75             JSStringRef propertyName,
76             JSValueRef value,
77             JSValueRef* exception);
78
79     static JSValueRef concat(JSContextRef context,
80             JSObjectRef function,
81             JSObjectRef thisObject,
82             size_t argumentCount,
83             const JSValueRef arguments[],
84             JSValueRef* exception);
85     static JSValueRef join(JSContextRef context,
86             JSObjectRef function,
87             JSObjectRef thisObject,
88             size_t argumentCount,
89             const JSValueRef arguments[],
90             JSValueRef* exception);
91     static JSValueRef pop(JSContextRef context,
92             JSObjectRef function,
93             JSObjectRef thisObject,
94             size_t argumentCount,
95             const JSValueRef arguments[],
96             JSValueRef* exception);
97     static JSValueRef push(JSContextRef context,
98             JSObjectRef function,
99             JSObjectRef thisObject,
100             size_t argumentCount,
101             const JSValueRef arguments[],
102             JSValueRef* exception);
103     static JSValueRef reverse(JSContextRef context,
104             JSObjectRef function,
105             JSObjectRef thisObject,
106             size_t argumentCount,
107             const JSValueRef arguments[],
108             JSValueRef* exception);
109     static JSValueRef shift(JSContextRef context,
110             JSObjectRef function,
111             JSObjectRef thisObject,
112             size_t argumentCount,
113             const JSValueRef arguments[],
114             JSValueRef* exception);
115     static JSValueRef slice(JSContextRef context,
116             JSObjectRef function,
117             JSObjectRef thisObject,
118             size_t argumentCount,
119             const JSValueRef arguments[],
120             JSValueRef* exception);
121     static JSValueRef sort(JSContextRef context,
122             JSObjectRef function,
123             JSObjectRef thisObject,
124             size_t argumentCount,
125             const JSValueRef arguments[],
126             JSValueRef* exception);
127     static JSValueRef splice(JSContextRef context,
128             JSObjectRef function,
129             JSObjectRef thisObject,
130             size_t argumentCount,
131             const JSValueRef arguments[],
132             JSValueRef* exception);
133     static JSValueRef toString(JSContextRef context,
134             JSObjectRef function,
135             JSObjectRef thisObject,
136             size_t argumentCount,
137             const JSValueRef arguments[],
138             JSValueRef* exception);
139     static JSValueRef unshift(JSContextRef context,
140             JSObjectRef function,
141             JSObjectRef thisObject,
142             size_t argumentCount,
143             const JSValueRef arguments[],
144             JSValueRef* exception);
145     static JSValueRef valueOf(JSContextRef context,
146             JSObjectRef function,
147             JSObjectRef thisObject,
148             size_t argumentCount,
149             const JSValueRef arguments[],
150             JSValueRef* exception);
151
152     static bool checkValue(const std::string &value);
153
154     static JSClassRef m_jsClassRef;
155     /**
156      * This structure describes a statically declared function property.
157      */
158     static JSStaticFunction m_function[];
159
160     /**
161      * This structure contains properties and callbacks that define a type of object.
162      */
163     static JSClassDefinition m_classInfo;
164
165     /**
166      * This member variable contains the initialization values for the static properties of this class.
167      * The values are given according to the data structure JSPropertySpec
168      */
169     static JSStaticValue m_property[];
170 };
171 }
172 }
173 }
174 #endif