2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 * @file widget_install_to_external.cpp
18 * @author Soyoung Kim (sy037.kim@smasung.com)
20 #include "widget_install_to_external.h"
22 #include <dpl/singleton_safe_impl.h>
23 #include <dpl/assert.h>
24 #include <installer_log.h>
26 IMPLEMENT_SAFE_SINGLETON(WidgetInstallToExt)
28 WidgetInstallToExt::WidgetInstallToExt() :
33 WidgetInstallToExt::~WidgetInstallToExt()
36 void WidgetInstallToExt::initialize(std::string appId)
38 _D("WidgetInstallToExt::initialize()");
41 if (NULL == m_handle) {
42 m_handle = app2ext_init(APP2EXT_SD_CARD);
43 if (NULL == m_handle) {
44 ThrowMsg(Exception::ErrorInstallToExt, "initialize failed");
49 void WidgetInstallToExt::deinitialize()
51 _D("WidgetInstallToExt::deinitialize()");
52 if (NULL != m_handle) {
53 if (0 < app2ext_deinit(m_handle)) {
54 ThrowMsg(Exception::ErrorInstallToExt,
55 "app2ext deinitialize \
61 void WidgetInstallToExt::preInstallation(GList *dirList, int dSize)
63 _D("WidgetInstallToExt::preInstallation()");
66 int ret = m_handle->interface.pre_install(m_appId.c_str(), dirList, dSize);
68 if (APP2EXT_SUCCESS == ret) {
69 _D("App2Ext pre install success");
71 postInstallation(false);
72 ThrowMsg(Exception::ErrorInstallToExt, "pre-install failed");
76 void WidgetInstallToExt::postInstallation(bool status)
78 _D("WidgetInstallToExt::postInstallation()");
80 if (NULL != m_handle) {
82 m_handle->interface.post_install(m_appId.c_str(),
83 APP2EXT_STATUS_SUCCESS);
85 m_handle->interface.post_install(m_appId.c_str(),
86 APP2EXT_STATUS_FAILED);
91 void WidgetInstallToExt::preUpgrade(GList *dirList, int dSize)
93 _D("WidgetInstallToExt::preUpgrade()");
96 int ret = m_handle->interface.pre_upgrade(m_appId.c_str(), dirList, dSize);
97 if (APP2EXT_SUCCESS == ret) {
98 _D("App2Ext pre-upgrade success");
101 ThrowMsg(Exception::ErrorInstallToExt, "pre-upgrade failed");
105 void WidgetInstallToExt::postUpgrade(bool status)
107 _D("WidgetInstallToExt::postUpgrade()");
108 if (NULL != m_handle) {
110 m_handle->interface.post_upgrade(m_appId.c_str(),
111 APP2EXT_STATUS_SUCCESS);
113 m_handle->interface.post_upgrade(m_appId.c_str(),
114 APP2EXT_STATUS_FAILED);
119 void WidgetInstallToExt::uninstallation()
121 _D("WidgetInstallToExt::uninstallation()");
125 int ret = m_handle->interface.pre_uninstall(m_appId.c_str());
126 if (APP2EXT_SUCCESS == ret) {
127 if (APP2EXT_SUCCESS ==
128 m_handle->interface.post_uninstall(m_appId.c_str()))
130 _D("App2Ext pre-uninstall success");
132 ThrowMsg(Exception::ErrorInstallToExt, "post-uninstall failed");
135 ThrowMsg(Exception::ErrorInstallToExt, "pre-uninstall failed");
139 void WidgetInstallToExt::disable()
141 _D("WidgetInstallToExt::disable()");
142 if (NULL != m_handle) {
143 int ret = m_handle->interface.disable(m_appId.c_str());
144 if (APP2EXT_SUCCESS != ret && APP2EXT_ERROR_UNMOUNT != ret) {
145 ThrowMsg(Exception::ErrorInstallToExt, "disable failed");