}
-bool JSAlarmAbsolute::hasInstance(JSContextRef context, JSObjectRef constructor, JSValueRef possibleInstance, JSValueRef* exception)
-{
- return JSValueIsObjectOfClass(context, possibleInstance, getClassRef());
-}
JSObjectRef DLL_EXPORT JSAlarmAbsolute::constructor(JSContextRef ctx, JSObjectRef constructor, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
- try {
- AlarmAbsolutePtr priv = AlarmAbsolutePtr(new AlarmAbsolute());
- if (!priv) {
- throw TypeMismatchException("Private object is null");
- }
+ ArgumentValidator validator(ctx, argumentCount, arguments);
- ArgumentValidator validator(ctx, argumentCount, arguments);
+ AlarmAbsolutePtr priv = AlarmAbsolutePtr(new AlarmAbsolute());
+
+ try {
time_t date = validator.toTimeT(0);
struct tm *startDate = localtime(&date);
mktime(startDate);
priv->setInterval(interval);
}
}
+ } catch (const BasePlatformException& err) {
+ LoggerE("Exception occured while creating constructor : " << err.getMessage());
+ }
- return JSValueToObject(ctx, createJSObject(ctx, priv), exception);
+ JSAlarmAbsolutePriv *jspriv = new JSAlarmAbsolutePriv(ctx, priv);
+ JSObjectRef obj = JSObjectMake(ctx, getClassRef(), jspriv);
- } catch (const BasePlatformException& err) {
- return JSWebAPIErrorFactory::postException(ctx, exception, err);
- }
+ JSStringRef ctorName = JSStringCreateWithUTF8CString("constructor");
+ JSObjectSetProperty(ctx, obj, ctorName, constructor,
+ kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete | kJSPropertyAttributeDontEnum, NULL);
+ JSStringRelease(ctorName);
+
+ return obj;
}
AlarmAbsolutePtr JSAlarmAbsolute::getPrivData(JSObjectRef object)
return result;
}
-JSValueRef JSAlarmAbsolute::createJSObject(JSContextRef context, const int id)
-{
- AlarmAbsolutePtr privateData = AlarmAbsolutePtr(new AlarmAbsolute());
- privateData->setId(id);
-
- JSAlarmAbsolutePriv *priv = new JSAlarmAbsolutePriv(context, privateData);
- if (!priv) {
- throw TypeMismatchException("Private object is null");
- }
- return JSObjectMake(context, getClassRef(), static_cast<void*>(priv));
-}
JSValueRef JSAlarmAbsolute::createJSObject(JSContextRef context, AlarmAbsolutePtr privateData)
{
return JSObjectMake(context, getClassRef(), static_cast<void*>(priv));
}
-JSValueRef JSAlarmAbsolute::createJSObject(JSContextRef context, struct tm date, int interval)
-{
- AlarmAbsolutePtr privateData = AlarmAbsolutePtr(new AlarmAbsolute());
- privateData->setDate(date);
-
- JSAlarmAbsolutePriv *priv = new JSAlarmAbsolutePriv(context, privateData);
- if (!priv) {
- throw TypeMismatchException("Private object is null");
- }
- return JSObjectMake(context, getClassRef(), static_cast<void*>(priv));
-}
-
-JSValueRef JSAlarmAbsolute::createJSObject(JSContextRef context, struct tm date)
-{
- AlarmAbsolutePtr privateData = AlarmAbsolutePtr(new AlarmAbsolute());
- privateData->setDate(date);
-
- JSAlarmAbsolutePriv *priv = new JSAlarmAbsolutePriv(context, privateData);
- if (!priv) {
- throw TypeMismatchException("Private object is null");
- }
- return JSObjectMake(context, getClassRef(), static_cast<void*>(priv));
-}
-
JSValueRef JSAlarmAbsolute::getNextScheduledDate( JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef * exception)
{
TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);