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 <dpl/log/log.h>
26 IMPLEMENT_SAFE_SINGLETON(WidgetInstallToExt)
28 WidgetInstallToExt::WidgetInstallToExt() :
33 WidgetInstallToExt::~WidgetInstallToExt()
36 void WidgetInstallToExt::initialize(std::string appId)
38 LogDebug("WidgetInstallToExt::initialize()");
41 m_handle = app2ext_init(APP2EXT_SD_CARD);
42 if (NULL == m_handle) {
43 ThrowMsg(Exception::ErrorInstallToExt, "initialize failed");
47 void WidgetInstallToExt::deinitialize()
49 LogDebug("WidgetInstallToExt::deinitialize()");
50 if (NULL != m_handle) {
51 if (0 < app2ext_deinit(m_handle)) {
52 ThrowMsg(Exception::ErrorInstallToExt,
53 "app2ext deinitialize \
59 void WidgetInstallToExt::preInstallation(GList *dirList, int dSize)
61 LogDebug("WidgetInstallToExt::preInstallation()");
64 int ret = m_handle->interface.pre_install(m_appId.c_str(), dirList, dSize);
66 if (APP2EXT_SUCCESS == ret) {
67 LogDebug("App2Ext pre install success");
69 postInstallation(false);
70 ThrowMsg(Exception::ErrorInstallToExt, "pre-install failed");
74 void WidgetInstallToExt::postInstallation(bool status)
76 LogDebug("WidgetInstallToExt::postInstallation()");
80 m_handle->interface.post_install(m_appId.c_str(),
81 APP2EXT_STATUS_SUCCESS);
83 m_handle->interface.post_install(m_appId.c_str(),
84 APP2EXT_STATUS_FAILED);
88 void WidgetInstallToExt::preUpgrade(GList *dirList, int dSize)
90 LogDebug("WidgetInstallToExt::preUpgrade()");
93 int ret = m_handle->interface.pre_upgrade(m_appId.c_str(), dirList, dSize);
94 if (APP2EXT_SUCCESS == ret) {
95 LogDebug("App2Ext pre-upgrade success");
98 ThrowMsg(Exception::ErrorInstallToExt, "pre-upgrade failed");
102 void WidgetInstallToExt::postUpgrade(bool status)
104 LogDebug("WidgetInstallToExt::postUpgrade()");
108 m_handle->interface.post_upgrade(m_appId.c_str(),
109 APP2EXT_STATUS_SUCCESS);
111 m_handle->interface.post_upgrade(m_appId.c_str(),
112 APP2EXT_STATUS_FAILED);
116 void WidgetInstallToExt::uninstallation()
118 LogDebug("WidgetInstallToExt::uninstallation()");
122 int ret = m_handle->interface.pre_uninstall(m_appId.c_str());
123 if (APP2EXT_SUCCESS == ret) {
124 if (APP2EXT_SUCCESS ==
125 m_handle->interface.post_uninstall(m_appId.c_str()))
127 LogDebug("App2Ext pre-uninstall success");
129 ThrowMsg(Exception::ErrorInstallToExt, "post-uninstall failed");
132 ThrowMsg(Exception::ErrorInstallToExt, "pre-uninstall failed");