[Package] Remove callback when request failed
authorByungWoo Lee <bw1212.lee@samsung.com>
Tue, 27 Jan 2015 07:53:24 +0000 (16:53 +0900)
committerByungWoo Lee <bw1212.lee@samsung.com>
Tue, 27 Jan 2015 07:53:24 +0000 (16:53 +0900)
Change-Id: Ib9af724038bbbf155d2802f1fc3f0eafb0772f8e

src/package/package_api.js
src/package/package_info_provider.cc
src/package/package_instance.cc
src/package/package_instance.h

index d3e3ad0..95c0e3a 100644 (file)
@@ -8,7 +8,6 @@ var callbackId = 0;
 var callbacks = {};
 
 extension.setMessageListener(function(json) {
-  console.log('[Package][extension.setMessageListener] Enter');
   var result = JSON.parse(json);
   var callback = callbacks[result['callbackId']];
   callback(result);
@@ -19,13 +18,9 @@ function nextCallbackId() {
 }
 
 function callNative(cmd, args) {
-  console.log('[Package][callNative] Enter');
-
   var json = {'cmd': cmd, 'args': args};
   var argjson = JSON.stringify(json);
-  console.log('[Package][callNative] argjson: ' + argjson);
   var resultString = extension.internal.sendSyncMessage(argjson);
-  console.log('[Package][callNative] resultString: ' + resultString);
   var result = JSON.parse(resultString);
 
   if (typeof result !== 'object') {
@@ -48,13 +43,10 @@ function callNative(cmd, args) {
 
 
 function callNativeWithCallback(cmd, args, callback) {
-  console.log('[Package][callNativeWithCallback] Enter');
-
   if (callback) {
     var id = nextCallbackId();
     args['callbackId'] = id;
     callbacks[id] = callback;
-    console.log('[Package][callNativeWithCallback] callbackId: ' + id);
   }
 
   return callNative(cmd, args);
@@ -62,9 +54,10 @@ function callNativeWithCallback(cmd, args, callback) {
 
 function SetReadOnlyProperty(obj, n, v) {
   if (arguments.length > 2)
-    Object.defineProperty(obj, n, {value: v, writable: false, configurable: false});
+    Object.defineProperty(
+        obj, n, {value: v, writable: false, enumerable: true, configurable: true});
   else
-    Object.defineProperty(obj, n, {writable: false, configurable: false});
+    Object.defineProperty(obj, n, {writable: false, enumerable: true, configurable: true});
 }
 
 function PackageInformation(obj) {
@@ -90,8 +83,6 @@ function PackageManager() {
 
 
 PackageManager.prototype.install = function(packageFileURI, progressCallback) {
-  console.log('[Package][install] Enter');
-
   var args = validator_.validateArgs(arguments, [
     {'name' : 'packageFileURI', 'type' : types_.STRING},
     {'name' : 'progressCallback',
@@ -103,25 +94,17 @@ PackageManager.prototype.install = function(packageFileURI, progressCallback) {
   var nativeParam = {
     'packageFileURI': args.packageFileURI
   };
-  console.log('[Package][install] packageFileURI: [' + nativeParam.packageFileURI + ']');
 
   try {
     var syncResult = callNativeWithCallback(
         'PackageManager_install',
         nativeParam,
         function(result) {
-          console.log('[Package][installCB] Enter');
-          console.log('[Package][installCB] status: ' + result.status);
-
           if (result.status == 'progress') {
-            console.log('[Package][installCB] Call onprogress');
             args.progressCallback.onprogress(result.id, result.progress);
           } else if (result.status == 'complete') {
-            console.log('[Package][installCB] Call oncomplete');
             args.progressCallback.oncomplete(result.id);
           } else if (result.status == 'error') {
-            console.log('[Package][installCB] Call errorCallback');
-
             var err = result['error'];
             if (err) {
               args.errorCallback(new tizen.WebAPIError(err.name, err.message));
@@ -130,7 +113,6 @@ PackageManager.prototype.install = function(packageFileURI, progressCallback) {
           }
 
           if (result.status == 'complete' || result.status == 'error') {
-            console.log('[Package][installCB] Delete callback');
             delete callbacks[result['callbackId']];
           }
         });
@@ -140,8 +122,6 @@ PackageManager.prototype.install = function(packageFileURI, progressCallback) {
 };
 
 PackageManager.prototype.uninstall = function(id, progressCallback) {
-  console.log('[Package][uninstall] Enter');
-
   var args = validator_.validateArgs(arguments, [
     {'name' : 'id', 'type' : types_.STRING},
     {'name' : 'progressCallback',
@@ -153,25 +133,17 @@ PackageManager.prototype.uninstall = function(id, progressCallback) {
   var nativeParam = {
     'id': args.id
   };
-  console.log('[Package][uninstall] id: [' + nativeParam.id + ']');
 
   try {
     var syncResult = callNativeWithCallback(
         'PackageManager_uninstall',
         nativeParam,
         function(result) {
-          console.log('[Package][uninstallCB] Enter');
-          console.log('[Package][uninstallCB] status: ' + result.status);
-
           if (result.status == 'progress') {
-            console.log('[Package][uninstallCB] Call onprogress');
             args.progressCallback.onprogress(result.id, result.progress);
           } else if (result.status == 'complete') {
-            console.log('[Package][uninstallCB] Call oncomplete');
             args.progressCallback.oncomplete(result.id);
           } else if (result.status == 'error') {
-            console.log('[Package][uninstallCB] Call errorCallback');
-
             var err = result['error'];
             if (err) {
               args.errorCallback(new tizen.WebAPIError(err.name, err.message));
@@ -180,7 +152,6 @@ PackageManager.prototype.uninstall = function(id, progressCallback) {
           }
 
           if (result.status == 'complete' || result.status == 'error') {
-            console.log('[Package][uninstallCB] Delete callback');
             delete callbacks[result['callbackId']];
           }
         });
@@ -191,8 +162,6 @@ PackageManager.prototype.uninstall = function(id, progressCallback) {
 };
 
 PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallback) {
-  console.log('[Package][getPackagesInfo] Enter');
-
   var args = validator_.validateArgs(arguments, [
     {'name' : 'successCallback', 'type' : types_.FUNCTION},
     {'name' : 'errorCallback', 'type' : types_.FUNCTION, 'optional' : true, 'nullable' : true}
@@ -206,20 +175,12 @@ PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallba
         'PackageManager_getPackagesInfo',
         nativeParam,
         function(result) {
-          console.log('[Package][getPackagesInfoCB] Enter');
-          console.log('[Package][getPackagesInfoCB] status: ' + result.status);
-
           if (result.status == 'success') {
             for (var i = 0; i < result.informationArray.length; i++) {
               result.informationArray[i] = PackageInformation(result.informationArray[i]);
             }
-
-            console.log('[Package][getPackagesInfo] Call successCallback: ' +
-                result.informationArray.length);
             args.successCallback(result.informationArray);
           } else if (result.status == 'error') {
-            console.log('[Package][getPackagesInfo] Call errorCallback');
-
             var err = result['error'];
             if (err) {
               args.errorCallback(new tizen.WebAPIError(err.name, err.message));
@@ -227,7 +188,6 @@ PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallba
             }
           }
 
-          console.log('[Package][getPackagesInfoCB] Delete callback');
           delete callbacks[result['callbackId']];
         });
   } catch (e) {
@@ -236,8 +196,6 @@ PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallba
 };
 
 PackageManager.prototype.getPackageInfo = function() {
-  console.log('[Package][getPackageInfo] Enter');
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'id', 'type': types_.STRING, 'optional' : true, 'nullable' : true}
   ]);
@@ -258,8 +216,6 @@ PackageManager.prototype.getPackageInfo = function() {
 };
 
 PackageManager.prototype.setPackageInfoEventListener = function(eventCallback) {
-  console.log('[Package][setPackageInfoEventListener] Enter');
-
   var args = validator_.validateArgs(
       arguments,
       [
@@ -276,9 +232,6 @@ PackageManager.prototype.setPackageInfoEventListener = function(eventCallback) {
         'PackageManager_setPackageInfoEventListener',
         nativeParam,
         function(result) {
-          console.log('[Package][PackageInfoEventListener] Enter');
-          console.log('[Package][PackageInfoEventListener] status: ' + result.status);
-
           if (result.status == 'installed') {
             args.eventCallback.oninstalled(PackageInformation(result.info));
           }
@@ -295,15 +248,12 @@ PackageManager.prototype.setPackageInfoEventListener = function(eventCallback) {
 };
 
 PackageManager.prototype.unsetPackageInfoEventListener = function() {
-  console.log('[Package][unsetPackageInfoEventListener] Enter');
-
   var nativeParam = {
   };
 
   try {
     var syncResult = callNative('PackageManager_unsetPackageInfoEventListener', nativeParam);
     if (typeof syncResult != 'boolean') {
-      console.log('[Package][unsetPackageInfoEventListenerCB] Delete callback ' + syncResult);
       delete callbacks[syncResult];
     }
   } catch (e) {
index 4f264b9..27c1751 100644 (file)
@@ -128,7 +128,6 @@ static bool PackageAppInfoCb(
     return false;
   }
 
-  LoggerD("app_id: [%s]", app_id);
   array_data->push_back(picojson::value(app_id));
   return true;
 }
@@ -253,7 +252,6 @@ bool PackageInfoProvider::GetCurrentPackageId(
   char *app_id = NULL;
 
   int pid = getpid();
-  LoggerD("pid: %d", pid);
   ret = app_manager_get_app_id(pid, &app_id);
   if ( ret != APP_MANAGER_ERROR_NONE ) {
     LoggerE("Failed to get app id");
index e63e7be..0c802c5 100644 (file)
@@ -60,7 +60,6 @@ static void* PackageThreadWork(
 
   switch ( userData->work_ ) {
     case PackageThreadWorkGetPackagesInfo: {
-      LoggerD("Start PackageThreadWorkGetPackagesInfo");
       picojson::object output;
       PackageInfoProvider::GetPackagesInfo(output);
       userData->data_ = output;
@@ -91,7 +90,6 @@ static void PackageRequestCb(
     package_manager_event_type_e event_type,
     package_manager_event_state_e event_state, int progress,
     package_manager_error_e error, void *user_data) {
-  LoggerD("Enter [%s]", package);
 
   PackageInstance* instance = static_cast<PackageInstance*>(user_data);
   if ( !instance ) {
@@ -100,30 +98,28 @@ static void PackageRequestCb(
   }
 
   if ( event_state == PACKAGE_MANAGER_EVENT_STATE_STARTED ) {
-    LoggerD("[Started] Do not invoke JS callback");
     return;
   }
 
   picojson::object param;
   if ( event_state == PACKAGE_MANAGER_EVENT_STATE_FAILED ) {
-    LoggerD("[Failed]");
+    LoggerE("[Failed]");
     param["status"] = picojson::value("error");
     param["error"] = UnknownException(
         "It is not allowed to install the package by the platform or " \
         "any other platform error occurs").ToJSON();
   } else if ( event_state == PACKAGE_MANAGER_EVENT_STATE_PROCESSING ) {
-    LoggerD("[Onprogress] %d %", progress);
     param["status"] = picojson::value("progress");
     param["progress"] = picojson::value(static_cast<double>(progress));
     param["id"] = picojson::value(std::string(package));
   } else if ( event_state == PACKAGE_MANAGER_EVENT_STATE_COMPLETED ) {
-    LoggerD("[Oncomplete]");
     param["status"] = picojson::value("complete");
     param["id"] = picojson::value(std::string(package));
   }
 
   instance->InvokeCallback(id, param);
-  if ( event_state == PACKAGE_MANAGER_EVENT_STATE_COMPLETED ) {
+  if ( event_state == PACKAGE_MANAGER_EVENT_STATE_COMPLETED
+      || event_state == PACKAGE_MANAGER_EVENT_STATE_FAILED ) {
     LoggerD("Request has been completed");
     instance->DeregisterCallback(id);
   }
@@ -201,7 +197,6 @@ static std::string convertUriToPath(const std::string& uri) {
         result = str;
     }
 
-    LoggerD("URI [%s]", result.c_str());
     return result;
 }
 
@@ -259,22 +254,20 @@ PackageInstance::~PackageInstance() {
     }
 
 void PackageInstance::RegisterCallback(
-    int requestId, int callback_id) {
+    int request_id, int callback_id) {
   LoggerD("Enter");
-  callbacks_map_[requestId] = callback_id;
+  callbacks_map_[request_id] = callback_id;
 }
 
-void PackageInstance::DeregisterCallback(int requestId) {
-  LoggerD("Enter [%d]", requestId);
-  callbacks_map_.erase(requestId);
+void PackageInstance::DeregisterCallback(int request_id) {
+  callbacks_map_.erase(request_id);
 }
 
 void PackageInstance::InvokeCallback(
-    int requestId, picojson::object& param) {
-  LoggerD("Enter [%d]", requestId);
+    int request_id, picojson::object& param) {
+  LoggerD("Enter");
 
-  int callback_id = callbacks_map_[requestId];
-  LoggerD("callbackId: %d", callback_id);
+  int callback_id = callbacks_map_[request_id];
 
   param["callbackId"] = picojson::value(
       static_cast<double>(callback_id));
@@ -291,10 +284,8 @@ void PackageInstance::PackageManagerInstall(
 
   int callback_id = static_cast<int>(
       args.get("callbackId").get<double>());
-  LoggerD("callbackId: %d", callback_id);
   const std::string& packageFileURI =
       convertUriToPath(args.get("packageFileURI").get<std::string>());
-  LoggerD("packageFileURI: %s", packageFileURI.c_str());
 
   /* Need to check privilege
   ReportError(
@@ -312,9 +303,9 @@ void PackageInstance::PackageManagerInstall(
     return;
   }
 
-  int requestId = 0;
+  int request_id = 0;
   int ret = package_manager_request_install(
-      request_, packageFileURI.c_str(), &requestId);
+      request_, packageFileURI.c_str(), &request_id);
   if ( ret != PACKAGE_MANAGER_ERROR_NONE ) {
     if ( ret == PACKAGE_MANAGER_ERROR_INVALID_PARAMETER ) {
       LoggerE("The package is not found at the specified location");
@@ -329,7 +320,7 @@ void PackageInstance::PackageManagerInstall(
           "the platform or any other platform error occurs"));
     }
   } else {
-    RegisterCallback(requestId, callback_id);
+    RegisterCallback(request_id, callback_id);
   }
 
   ReportSuccess(out);
@@ -344,9 +335,7 @@ void PackageInstance::PackageManagerUninstall(
 
   int callback_id =
       static_cast<int>(args.get("callbackId").get<double>());
-  LoggerD("callbackId: %d", callback_id);
   const std::string& id = args.get("id").get<std::string>();
-  LoggerD("id: %s", id.c_str());
 
   /* Need to check privilege
   ReportError(
@@ -364,8 +353,8 @@ void PackageInstance::PackageManagerUninstall(
     return;
   }
 
-  int requestId = 0;
-  int ret = package_manager_request_uninstall(request_, id.c_str(), &requestId);
+  int request_id = 0;
+  int ret = package_manager_request_uninstall(request_, id.c_str(), &request_id);
   if ( ret != PACKAGE_MANAGER_ERROR_NONE ) {
     if ( ret == PACKAGE_MANAGER_ERROR_INVALID_PARAMETER ) {
       LoggerE("The package is not found at the specified location");
@@ -380,7 +369,7 @@ void PackageInstance::PackageManagerUninstall(
           "any other platform error occurs"));
     }
   } else {
-    RegisterCallback(requestId, callback_id);
+    RegisterCallback(request_id, callback_id);
   }
 
   ReportSuccess(out);
@@ -392,7 +381,6 @@ void PackageInstance::PackageManagerGetpackagesinfo(
   CHECK_EXIST(args, "callbackId", out)
   int callback_id =
       static_cast<int>(args.get("callbackId").get<double>());
-  LoggerD("callbackId: %d", callback_id);
 
   /* Need to check privilege
   ReportError(
@@ -422,7 +410,6 @@ void PackageInstance::PackageManagerGetpackageinfo(
 
   if ( args.contains("id") ) {
     std::string id = args.get("id").get<std::string>();
-    LoggerD("package id : [%s]", id.c_str());
     PackageInfoProvider::GetPackageInfo(id.c_str(), out);
   } else {
     PackageInfoProvider::GetPackageInfo(out);
@@ -445,7 +432,6 @@ void PackageInstance::
   CHECK_EXIST(args, "callbackId", out)
   int callback_id =
       static_cast<int>(args.get("callbackId").get<double>());
-  LoggerD("callbackId: %d", callback_id);
 
   /* Need to check privilege
   ReportError(
index 1b440cc..59736d7 100644 (file)
@@ -20,17 +20,17 @@ class PackageInstance : public common::ParsedInstance {
   PackageInstance();
   virtual ~PackageInstance();
 
-  void InvokeCallback(int requestId, picojson::object& param);
+  void InvokeCallback(int request_id, picojson::object& param);
   void InvokeListener(picojson::object& param);
-  void DeregisterCallback(int requestId);
+  void DeregisterCallback(int request_id);
 
  private:
   package_manager_request_h request_;
   package_manager_h manager_;
   int listener_id_;
-  std::map<int, int> callbacks_map_;  // <requestId, callbackId>
+  std::map<int, int> callbacks_map_;  // <request_id, callbackId>
 
-  void RegisterCallback(int requestId, int callback_id);
+  void RegisterCallback(int request_id, int callback_id);
   void InvokeErrorCallbackAsync
     (int callback_id, const common::PlatformException& ex);