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) {
176 // // Translate error
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");