tizen 2.3 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / Package / 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 #include <dpl/string.h>
19
20 #include <Commons/plugin_initializer_def.h>
21 #include <Commons/WrtAccess/WrtAccess.h>
22 #include <GlobalContextManager.h>
23 #include <TimeTracer.h>
24 #include "JSPackageManager.h"
25 #include "PackageManager.h"
26 #include <Logger.h>
27
28 using namespace WrtDeviceApis;
29 using namespace WrtDeviceApis::Commons;
30 using namespace DeviceAPI::Common;
31
32 namespace DeviceAPI {
33 namespace Package {
34
35 void on_widget_start_callback(int widgetId) {
36     LOGD("[Tizen2_1\\Package] on_widget_start_callback (%d)", widgetId);
37     TIME_TRACER_INIT();
38     Try {
39         WrtAccessSingleton::Instance().initialize(widgetId);
40     } Catch(WrtDeviceApis::Commons::Exception) {
41         LOGE("WrtAccess initialization failed");
42     }
43 }
44
45 void on_widget_stop_callback(int widgetId) {
46     LOGD("[Tizen2_1\\Package] on_widget_stop_callback (%d)", widgetId);
47     TIME_TRACER_EXPORT_REPORT_TO(TIME_TRACER_EXPORT_FILE,"Package");
48     TIME_TRACER_RELEASE();
49     Try {
50         WrtAccessSingleton::Instance().deinitialize(widgetId);
51     } Catch(WrtDeviceApis::Commons::Exception) {
52         LOGE("WrtAccess deinitialization failed");
53     }
54 }
55
56 void on_frame_load_callback(const void * context)
57 {
58     LOGD("[Tizen\\Package] on_frame_load_callback (%p)", context);
59     GlobalContextManager::getInstance()->addGlobalContext(static_cast<JSContextRef>(context));
60 }
61
62 void on_frame_unload_callback(const void * context)
63 {
64     LOGD("[Tizen\\Package] on_frame_unload_callback (%p)", context);
65     GlobalContextManager::getInstance()->removeGlobalContext(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(
76             WRT_JS_EXTENSION_OBJECT_TIZEN,
77             "package",
78             (js_class_template_getter)DeviceAPI::Package::JSPackageManager::getClassRef,
79             NULL)
80
81     PLUGIN_CLASS_MAP_END
82
83 } //Package
84 } //DeviceAPI
85