2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
21 #ifndef _JS_TIZEN_TZDATE_H_
22 #define _JS_TIZEN_TZDATE_H_
24 #include <JavaScriptCore/JavaScript.h>
25 #include <CommonsJavaScript/PrivateObject.h>
31 typedef WrtDeviceApis::CommonsJavaScript::PrivateObject<TZDatePtr, WrtDeviceApis::CommonsJavaScript::NoOwnership> TZDatePrivObject;
37 static const JSClassDefinition* getClassInfo();
39 static const JSClassRef getClassRef();
40 static JSObjectRef createJSObject(JSContextRef context);
41 static JSObjectRef createJSObject(JSContextRef context, const std::string &timezone);
42 static JSObjectRef createJSObject(JSContextRef context, const double milliseconds, const std::string &timezone);
43 static JSObjectRef createJSObject(JSContextRef context, const TZDateProperties &properties);
44 static JSObjectRef createJSObject(JSContextRef context, const long year, const long month, const long day, const long hours, const long minutes, const long seconds, const long milliseconds, const std::string &timezone);
47 static JSObjectRef constructor(JSContextRef ctx, JSObjectRef constructor, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
57 * This member variable contains the values which has to be passed when
58 * the this class is embedded into JS Engine.
60 static JSClassDefinition m_classInfo;
63 * This structure describes a statically declared function property.
65 static JSStaticFunction m_function[];
68 * This member variable contains the initialization values for the
69 * properties of this class. The values are given according to the
70 * data structure JSPropertySpec.
73 static JSClassRef m_jsClassRef;
76 * The callback invoked when an object is first created.
78 static void initialize(JSContextRef context, JSObjectRef object);
81 * The callback invoked when an object is finalized.
83 static void finalize(JSObjectRef object);
85 static JSValueRef getTimezone(JSContextRef context, JSObjectRef function,
86 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
87 static JSValueRef toTimezone(JSContextRef context, JSObjectRef function,
88 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
90 static JSValueRef diffTZDate(JSContextRef context, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception, CompareType type);
92 static JSValueRef difference(JSContextRef context, JSObjectRef function,
93 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
94 static JSValueRef equalsTo(JSContextRef context, JSObjectRef function,
95 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
96 static JSValueRef earlierThan(JSContextRef context, JSObjectRef function,
97 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
98 static JSValueRef laterThan(JSContextRef context, JSObjectRef function,
99 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
100 static JSValueRef addDuration(JSContextRef context, JSObjectRef function,
101 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
102 static JSValueRef toUTC(JSContextRef context, JSObjectRef function,
103 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
104 static JSValueRef toLocalTimezone(JSContextRef context, JSObjectRef function,
105 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
107 static JSValueRef toLocaleDateString(JSContextRef context, JSObjectRef function,
108 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
109 static JSValueRef toLocaleTimeString(JSContextRef context, JSObjectRef function,
110 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
111 static JSValueRef toLocaleString(JSContextRef context, JSObjectRef function,
112 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
113 static JSValueRef toDateString(JSContextRef context, JSObjectRef function,
114 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
115 static JSValueRef toTimeString(JSContextRef context, JSObjectRef function,
116 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
117 static JSValueRef toString(JSContextRef context, JSObjectRef function,
118 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
120 static JSValueRef getDate(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
121 JSValueRef * exception);
123 static JSValueRef getDay(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
124 JSValueRef * exception);
126 static JSValueRef getFullYear(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
127 JSValueRef * exception);
129 static JSValueRef getHours(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
130 JSValueRef * exception);
132 static JSValueRef getMilliseconds(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
133 JSValueRef * exception);
135 static JSValueRef getMinutes(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
136 JSValueRef * exception);
138 static JSValueRef getMonth(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
139 JSValueRef * exception);
141 static JSValueRef getSeconds(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
142 JSValueRef * exception);
144 static JSValueRef setTZDateValue(JSContextRef context, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception,
145 TZDate::TZDateFields dateFields);
147 static JSValueRef getTZDateValue(JSContextRef context, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception,
148 TZDate::TZDateFields dateFields);
150 static JSValueRef setDate(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
151 JSValueRef * exception);
153 static JSValueRef setFullYear(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
154 JSValueRef * exception);
156 static JSValueRef setHours(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
157 JSValueRef * exception);
159 static JSValueRef setMilliseconds(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
160 JSValueRef * exception);
162 static JSValueRef setMinutes(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
163 JSValueRef * exception);
165 static JSValueRef setMonth(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
166 JSValueRef * exception);
168 static JSValueRef setSeconds(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[],
169 JSValueRef * exception);
171 static JSValueRef getUTCTZDateValue(JSContextRef context, JSObjectRef thisObject, size_t argumentCount,
172 TZDate::TZDateFields DateFields, JSValueRef * exception);
173 static JSValueRef getUTCDate(JSContextRef context, JSObjectRef function,
174 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
175 static JSValueRef getUTCDay(JSContextRef context, JSObjectRef function,
176 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
177 static JSValueRef getUTCFullYear(JSContextRef context, JSObjectRef function,
178 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
179 static JSValueRef getUTCHours(JSContextRef context, JSObjectRef function,
180 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
181 static JSValueRef getUTCMilliseconds(JSContextRef context, JSObjectRef function,
182 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
183 static JSValueRef getUTCMinutes(JSContextRef context, JSObjectRef function,
184 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
185 static JSValueRef getUTCMonth(JSContextRef context, JSObjectRef function,
186 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
187 static JSValueRef getUTCSeconds(JSContextRef context, JSObjectRef function,
188 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
190 static JSValueRef setUTCTZDateValue(JSContextRef context, JSObjectRef thisObject, size_t argumentCount,
191 const JSValueRef arguments[], TZDate::TZDateFields dateFields, JSValueRef * exception);
192 static JSValueRef setUTCDate(JSContextRef context, JSObjectRef function,
193 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
194 static JSValueRef setUTCFullYear(JSContextRef context, JSObjectRef function,
195 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
196 static JSValueRef setUTCHours(JSContextRef context, JSObjectRef function,
197 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
198 static JSValueRef setUTCMilliseconds(JSContextRef context, JSObjectRef function,
199 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
200 static JSValueRef setUTCMinutes(JSContextRef context, JSObjectRef function,
201 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
202 static JSValueRef setUTCMonth(JSContextRef context, JSObjectRef function,
203 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
204 static JSValueRef setUTCSeconds(JSContextRef context, JSObjectRef function,
205 JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
207 static JSValueRef getTimezoneAbbreviation(JSContextRef context, JSObjectRef function, JSObjectRef thisObject,
208 size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
209 static JSValueRef secondsFromUTC(JSContextRef context, JSObjectRef function, JSObjectRef thisObject,
210 size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
211 static JSValueRef isDST(JSContextRef context, JSObjectRef function, JSObjectRef thisObject,
212 size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
213 static JSValueRef getPreviousDSTTransition(JSContextRef context, JSObjectRef function, JSObjectRef thisObject,
214 size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
215 static JSValueRef getNextDSTTransition(JSContextRef context, JSObjectRef function, JSObjectRef thisObject,
216 size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception);
222 #endif /* _JS_TIZEN_DATETIME_H_ */