merge with master
[platform/framework/web/wrt-plugins-tizen.git] / src / Push / plugin_initializer.cpp
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
18 #include <dpl/log/log.h>
19
20 #include <Commons/plugin_initializer_def.h>
21 #include <Commons/WrtAccess/WrtAccess.h>
22 #include <Commons/Exception.h>
23
24 #include "JSPushManager.h"
25 #include "PushListenerManager.h"
26
27 namespace DeviceAPI {
28 namespace Push {
29
30 using namespace WrtDeviceApis;
31 using namespace WrtDeviceApis::Commons;
32 using namespace DeviceAPI::Common;
33
34 void on_widget_start_callback(int widgetId)
35 {
36     LogDebug("[Tizen\\Push] on_widget_start_callback (" << widgetId << ")");
37
38         Try {
39         WrtAccessSingleton::Instance().initialize(widgetId);
40         } Catch (Exception) {
41                 LogError("WrtAccess initialization failed");
42         }
43 }
44
45 void on_widget_stop_callback(int widgetId)
46 {
47     LogDebug("[Tizen\\Push] on_widget_stop_callback (" << widgetId << ")");
48
49         Try {
50         WrtAccessSingleton::Instance().deinitialize(widgetId);
51         } Catch (Exception) {
52                 LogError("WrtAccess deinitialization failed");
53         }
54 }
55
56 void on_frame_load_callback(const void * context)
57 {
58     LogDebug("[Tizen\\Push] on_frame_load_callback (" << context << ")");
59 }
60
61 void on_frame_unload_callback(const void * context)
62 {
63     LogDebug("[Tizen\\Push] on_frame_unload_callback (" << context << ")");
64
65         PushListenerManagerSingleton::Instance().unregisterContext(static_cast<JSContextRef>(context));
66 }
67
68 PLUGIN_ON_WIDGET_START(on_widget_start_callback)
69 PLUGIN_ON_WIDGET_STOP(on_widget_stop_callback)
70
71 PLUGIN_ON_FRAME_LOAD(on_frame_load_callback)
72 PLUGIN_ON_FRAME_UNLOAD(on_frame_unload_callback)
73
74 PLUGIN_CLASS_MAP_BEGIN
75 PLUGIN_CLASS_MAP_ADD_CLASS(WRT_JS_EXTENSION_OBJECT_TIZEN,
76         "push",
77         (js_class_template_getter)JSPushManager::getClassRef,
78         NULL)
79 PLUGIN_CLASS_MAP_END
80
81 }
82 }
83