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(std::string tizenId,
61 CommonError::Type result,
64 LogDebug("StatusCallback called " << tizenId << " | " << result);
67 WrtErrStatus error = TranslateError(result);
68 StatusCallbackStruct* statusCallbackStruct =
69 static_cast<StatusCallbackStruct*>(data);
71 if (statusCallbackStruct->status_callback) {
72 statusCallbackStruct->status_callback(tizenId,
74 statusCallbackStruct->userdata);
76 LogInfo("StatusCallback: ignoring NULL callback pointer");
79 delete statusCallbackStruct;
82 // callback for finished install
83 void installFinishedCallback(void *userParam,
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::ErrorAreadyUninstalling:
110 errorStatus = WRT_INSTALLER_ERROR_ALREADY_UNINSTALLING;
113 case Jobs::WidgetInstall::Exceptions::ErrorOutOfDiskSpace:
114 errorStatus = WRT_INSTALLER_ERROR_OUT_OUT_DISK_SPACE;
117 case Jobs::WidgetInstall::Exceptions::ErrorInvalidPackage:
118 errorStatus = WRT_INSTALLER_ERROR_INVALID_CERTIFICATE;
121 case Jobs::WidgetInstall::Exceptions::ErrorAlreadyInstalled:
122 errorStatus = WRT_INSTALLER_ERROR_ALREADY_INSTALLED;
125 case Jobs::WidgetInstall::Exceptions::ErrorInternal:
126 errorStatus = WRT_INSTALLER_ERROR_INTERNAL;
129 case Jobs::WidgetInstall::Exceptions::ErrorNotAllowed:
130 errorStatus = WRT_INSTALLER_ERROR_NOT_ALLOWED;
133 case Jobs::WidgetInstall::Exceptions::ErrorDeferred:
134 errorStatus = WRT_INSTALLER_ERROR_DEFERRED;
137 case Jobs::WidgetInstall::Exceptions::ErrorDatabaseFailure:
138 errorStatus = WRT_INSTALLER_ERROR_DATABASE_FAILURE;
141 case Jobs::WidgetInstall::Exceptions::ErrorInstallOspServcie:
142 errorStatus = WRT_INSTALLER_ERROR_OSPSVC;
145 case Jobs::WidgetInstall::Exceptions::ErrorUnknown:
146 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
150 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
155 apiStr->status_callback(tizenId, errorStatus, apiStr->userdata);
157 LogInfo("installFinishedCallback: No callback");
161 // callback for finished install
162 void uninstallFinishedCallback(void *userParam,
164 Jobs::WidgetUninstall::Exceptions::Type status)
166 Assert(userParam != NULL);
168 StatusCallbackStruct *apiStr =
169 static_cast<StatusCallbackStruct*>(userParam);
171 if (apiStr->status_callback) {
173 WrtErrStatus errorStatus;
176 case Jobs::WidgetUninstall::Exceptions::Success:
177 errorStatus = WRT_SUCCESS;
180 case Jobs::WidgetUninstall::Exceptions::ErrorAlreadyUninstalling:
181 errorStatus = WRT_INSTALLER_ERROR_ALREADY_UNINSTALLING;
184 case Jobs::WidgetUninstall::Exceptions::ErrorWidgetDoesNotExist:
185 errorStatus = WRT_INSTALLER_ERROR_WIDGET_DOES_NOT_EXIST;
188 case Jobs::WidgetUninstall::Exceptions::ErrorDatabaseFailure:
189 errorStatus = WRT_INSTALLER_ERROR_DATABASE_FAILURE;
192 case Jobs::WidgetUninstall::Exceptions::ErrorUninstallOspSvcFailed:
193 errorStatus = WRT_INSTALLER_ERROR_OSPSVC;
196 case Jobs::WidgetUninstall::Exceptions::ErrorUnknown:
197 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
201 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
206 apiStr->status_callback(tizenId, errorStatus, apiStr->userdata);
208 LogInfo("uninstallFinishedCallback: No callback");
212 void pluginInstallFinishedCallback(void *userParam,
213 Jobs::PluginInstall::Exceptions::Type status)
217 PluginStatusCallbackStruct *apiStr =
218 static_cast<PluginStatusCallbackStruct*>(userParam);
220 if (apiStr->statusCallback) {
222 WrtErrStatus errorStatus;
225 case Jobs::PluginInstall::Exceptions::Success:
226 errorStatus = WRT_SUCCESS;
228 case Jobs::PluginInstall::Exceptions::WrongPluginPath:
229 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_WRONG_PATH;
231 case Jobs::PluginInstall::Exceptions::MetafileError:
232 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_METAFILE;
234 case Jobs::PluginInstall::Exceptions::AlreadyInstalled:
235 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_ALREADY_INSTALLED;
237 case Jobs::PluginInstall::Exceptions::LoadingLibraryError:
238 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_LIBRARY_ERROR;
240 case Jobs::PluginInstall::Exceptions::InstallationWaiting:
241 errorStatus = WRT_PLUGIN_INSTALLER_ERROR_WAITING;
244 errorStatus = WRT_INSTALLER_ERROR_UNKNOWN;
248 apiStr->statusCallback(errorStatus, apiStr->userdata);
250 LogInfo("PluginInstallFinishedCallback: No callback");
256 // callback for progress of install OR uninstall
257 void installProgressCallback(void *userParam,
258 ProgressPercent percent,
259 const ProgressDescription &description)
261 Assert(userParam != NULL);
263 StatusCallbackStruct *apiStr =
264 static_cast<StatusCallbackStruct*>(userParam);
266 if (apiStr->progress_callback) {
268 LogInfo("Entered " << percent << "% " << description);
269 apiStr->progress_callback(static_cast<float>(percent),
273 LogInfo("installProgressCallback: ignoring NULL callback pointer");