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 api_callbacks_translate.h
18 * @author Pawel Sikorski (p.sikorski@samsung.com)
20 * @brief Source file for api callbacks translate functions
23 #include <installer_callbacks_translate.h>
24 #include <dpl/log/log.h>
26 namespace InstallerCallbacksTranslate {
27 WrtErrStatus TranslateError(CommonError::Type status)
30 case CommonError::WrtSuccess:
33 case CommonError::HandleNotFound:
34 return WRT_ERROR_HANDLE_NOT_FOUND;
36 case CommonError::AlreadyRunning:
37 return WRT_ERROR_ALREADY_RUNNING;
39 case CommonError::InvalidLanguage:
40 return WRT_ERROR_INVALID_LANGUAGE;
42 case CommonError::AlreadyStopped:
43 return WRT_ERROR_ALREADY_STOPPED;
45 case CommonError::StillAuthorizing:
46 return WRT_ERROR_STILL_AUTHORIZING;
48 case CommonError::EarlyKilled:
49 return WRT_ERROR_EARLY_KILLED;
51 case CommonError::AccessDenied:
52 return WRT_ERROR_ACCESS_DENIED;
55 LogError("Untranslatable error: " << status);
56 return WRT_ERROR_INTERNAL;
60 void StatusCallback(int widget_handle,
61 CommonError::Type result,
64 LogDebug("StatusCallback called " << widget_handle << " | " << result);
67 WrtErrStatus error = TranslateError(result);
68 StatusCallbackStruct* statusCallbackStruct =
69 static_cast<StatusCallbackStruct*>(data);
71 if (statusCallbackStruct->status_callback) {
72 statusCallbackStruct->status_callback(widget_handle,
74 statusCallbackStruct->userdata);
76 LogInfo("StatusCallback: ignoring NULL callback pointer");
79 delete statusCallbackStruct;
82 // callback for finished install
83 void installFinishedCallback(void *userParam,
84 WidgetHandle widget_handle,
85 Jobs::WidgetInstall::Exceptions::Type status)
87 Assert(userParam != NULL);
89 StatusCallbackStruct *apiStr =
90 static_cast<StatusCallbackStruct*>(userParam);
92 if (apiStr->status_callback) {
94 WrtErrStatus errorStatus;
97 case Jobs::WidgetInstall::Exceptions::Success:
98 errorStatus = WRT_SUCCESS;
101 case Jobs::WidgetInstall::Exceptions::ErrorInvalidWidgetPackage:
102 errorStatus = WRT_INSTALLER_ERROR_INVALID_WIDGET_PACKAGE;
105 case Jobs::WidgetInstall::Exceptions::ErrorWidgetDoesNotExist:
106 errorStatus = WRT_INSTALLER_ERROR_WIDGET_DOES_NOT_EXIST;
109 case Jobs::WidgetInstall::Exceptions::ErrorFactoryWidget:
110 errorStatus = WRT_INSTALLER_ERROR_FACTORY_WIDGET;
113 case Jobs::WidgetInstall::Exceptions::ErrorAreadyUninstalling:
114 errorStatus = WRT_INSTALLER_ERROR_ALREADY_UNINSTALLING;
117 case Jobs::WidgetInstall::Exceptions::ErrorOutOfDiskSpace:
118 errorStatus = WRT_INSTALLER_ERROR_OUT_OUT_DISK_SPACE;
121 case Jobs::WidgetInstall::Exceptions::ErrorInvalidPackage:
122 errorStatus = WRT_INSTALLER_ERROR_INVALID_CERTIFICATE;
125 case Jobs::WidgetInstall::Exceptions::ErrorAlreadyInstalled:
126 errorStatus = WRT_INSTALLER_ERROR_ALREADY_INSTALLED;
129 case Jobs::WidgetInstall::Exceptions::ErrorInternal:
130 errorStatus = WRT_INSTALLER_ERROR_INTERNAL;
133 case Jobs::WidgetInstall::Exceptions::ErrorNotAllowed:
134 errorStatus = WRT_INSTALLER_ERROR_NOT_ALLOWED;
137 case Jobs::WidgetInstall::Exceptions::ErrorDeferred:
138 errorStatus = WRT_INSTALLER_ERROR_DEFERRED;
141 case Jobs::WidgetInstall::Exceptions::ErrorDatabaseFailure:
142 errorStatus = WRT_INSTALLER_ERROR_DATABASE_FAILURE;
145 case Jobs::WidgetInstall::Exceptions::ErrorInstallOspServcie:
146 errorStatus = WRT_INSTALLER_ERROR_OSPSVC;
149 case Jobs::WidgetInstall::Exceptions::ErrorUnknown:
150 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
154 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
159 apiStr->status_callback(widget_handle, errorStatus, apiStr->userdata);
161 LogInfo("installFinishedCallback: No callback");
165 // callback for finished install
166 void uninstallFinishedCallback(void *userParam,
167 WidgetHandle widget_handle,
168 Jobs::WidgetUninstall::Exceptions::Type status)
170 Assert(userParam != NULL);
172 StatusCallbackStruct *apiStr =
173 static_cast<StatusCallbackStruct*>(userParam);
175 if (apiStr->status_callback) {
177 WrtErrStatus errorStatus;
180 case Jobs::WidgetUninstall::Exceptions::Success:
181 errorStatus = WRT_SUCCESS;
184 case Jobs::WidgetUninstall::Exceptions::ErrorAlreadyUninstalling:
185 errorStatus = WRT_INSTALLER_ERROR_ALREADY_UNINSTALLING;
188 case Jobs::WidgetUninstall::Exceptions::ErrorWidgetDoesNotExist:
189 errorStatus = WRT_INSTALLER_ERROR_WIDGET_DOES_NOT_EXIST;
192 case Jobs::WidgetUninstall::Exceptions::ErrorDatabaseFailure:
193 errorStatus = WRT_INSTALLER_ERROR_DATABASE_FAILURE;
196 case Jobs::WidgetUninstall::Exceptions::ErrorUninstallOspSvcFailed:
197 errorStatus = WRT_INSTALLER_ERROR_OSPSVC;
200 case Jobs::WidgetUninstall::Exceptions::ErrorUnknown:
201 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
205 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
210 apiStr->status_callback(widget_handle, errorStatus, apiStr->userdata);
212 LogInfo("uninstallFinishedCallback: No callback");
216 void pluginInstallFinishedCallback(void *userParam,
217 Jobs::PluginInstall::Exceptions::Type status)
221 PluginStatusCallbackStruct *apiStr =
222 static_cast<PluginStatusCallbackStruct*>(userParam);
224 if (apiStr->statusCallback) {
226 WrtErrStatus errorStatus;
229 case Jobs::PluginInstall::Exceptions::Success:
230 errorStatus = WRT_SUCCESS;
232 case Jobs::PluginInstall::Exceptions::WrongPluginPath:
233 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_WRONG_PATH;
235 case Jobs::PluginInstall::Exceptions::MetafileError:
236 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_METAFILE;
238 case Jobs::PluginInstall::Exceptions::AlreadyInstalled:
239 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_ALREADY_INSTALLED;
241 case Jobs::PluginInstall::Exceptions::LoadingLibraryError:
242 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_LIBRARY_ERROR;
244 case Jobs::PluginInstall::Exceptions::InstallationWaiting:
245 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_WAITING;
248 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
252 apiStr->statusCallback(errorStatus, apiStr->userdata);
254 LogInfo("PluginInstallFinishedCallback: No callback");
260 // callback for progress of install OR uninstall
261 void installProgressCallback(void *userParam,
262 ProgressPercent percent,
263 const ProgressDescription &description)
265 Assert(userParam != NULL);
267 StatusCallbackStruct *apiStr =
268 static_cast<StatusCallbackStruct*>(userParam);
270 if (apiStr->progress_callback) {
272 LogInfo("Entered " << percent << "% " << description);
273 apiStr->progress_callback(static_cast<float>(percent),
277 LogInfo("installProgressCallback: ignoring NULL callback pointer");