c037436de61d714d2ff68cb5fa2259c6e5c6e169
[framework/web/wrt-plugins-tizen.git] / src / Calendar / plugin_initializer.cpp
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 #include <dpl/log/log.h>
20
21 #include <Commons/plugin_initializer_def.h>
22 #include <Commons/WrtAccess/WrtAccess.h>
23 #include <Commons/Exception.h>
24 #include "JSCalendarManager.h"
25 #include "JSCalendarEvent.h"
26 #include "JSCalendarTask.h"
27 #include "JSCalendarAttendee.h"
28 #include "JSCalendarRecurrenceRule.h"
29 #include "JSCalendarEventId.h"
30 #include "JSCalendarAlarm.h"
31
32 #include "CalendarAsyncCallbackManager.h"
33 #include "CalendarListenerManager.h"
34
35 namespace DeviceAPI {
36 namespace Calendar {
37
38 using namespace WrtDeviceApis;
39 using namespace WrtDeviceApis::Commons;
40
41 void on_widget_start_callback(int widgetId)
42 {
43     LogDebug("[Tizen\\Calendar] on_widget_start_callback (" << widgetId << ")");
44
45         Try {
46         WrtAccessSingleton::Instance().initialize(widgetId);
47         } Catch (Exception) {
48                 LogError("WrtAccess initialization failed");
49         }
50 }
51
52 void on_widget_stop_callback(int widgetId)
53 {
54     LogDebug("[Tizen\\Calendar] on_widget_stop_callback (" << widgetId << ")");
55
56         Try {
57         WrtAccessSingleton::Instance().deinitialize(widgetId);
58         } Catch (Exception) {
59                 LogError("WrtAccess deinitialization failed");
60         }
61 }
62
63 void on_frame_load_callback(const void * context)
64 {
65     LogDebug("[Tizen\\Calendar] on_frame_load_callback (" << context << ")");
66 }
67
68 void on_frame_unload_callback(const void * context)
69 {
70     LogDebug("[Tizen\\Calendar] on_frame_unload_callback (" << context << ")");
71
72         CalendarAsyncCallbackManagerSingleton::Instance().unregisterContext(static_cast<JSContextRef>(context));
73         CalendarListenerManagerSingleton::Instance().unregisterContext(static_cast<JSContextRef>(context));
74 }
75
76 PLUGIN_ON_WIDGET_START(on_widget_start_callback)
77 PLUGIN_ON_WIDGET_STOP(on_widget_stop_callback)
78
79 PLUGIN_ON_FRAME_LOAD(on_frame_load_callback)
80 PLUGIN_ON_FRAME_UNLOAD(on_frame_unload_callback)
81
82 PLUGIN_CLASS_MAP_BEGIN
83 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
84         "calendar",
85         (js_class_template_getter)JSCalendarManager::getClassRef,
86         NULL)
87 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
88         TIZEN_INTERFACE_CALENDAR_EVENT,
89         (js_class_template_getter)JSCalendarEvent::getClassRef,
90         NULL)
91 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
92         TIZEN_INTERFACE_CALENDAR_TASK,
93         (js_class_template_getter)JSCalendarTask::getClassRef,
94         NULL)
95 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
96         TIZEN_INTERFACE_CALENDAR_ATTENDEE,
97         (js_class_template_getter)JSCalendarAttendee::getClassRef,
98         NULL)
99 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
100         TIZEN_INTERFACE_CALENDAR_RECURRENCE_RULE,
101         (js_class_template_getter)JSCalendarRecurrenceRule::getClassRef,
102         NULL)
103 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
104         TIZEN_INTERFACE_CALENDAR_EVENT_ID,
105         (js_class_template_getter)JSCalendarEventId::getClassRef,
106         NULL)
107 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
108         TIZEN_INTERFACE_CALENDAR_ALARM,
109         (js_class_template_getter)JSCalendarAlarm::getClassRef,
110         NULL)
111 PLUGIN_CLASS_MAP_END
112
113 }
114 }
115