-API int pkgmgr_parser_update_manifest_info_in_db(manifest_x *mfx)
-{
- if (mfx == NULL) {
- _LOGD("manifest pointer is NULL\n");
- return -1;
- }
- int ret = 0;
- ret = pkgmgr_parser_check_and_create_db(GLOBAL_USER);
- if (ret == -1) {
- _LOGD("Failed to open DB\n");
- return ret;
- }
- ret = pkgmgr_parser_initialize_db();
- if (ret == -1)
- goto err;
- /*Preserve guest mode visibility*/
- __preserve_guestmode_visibility_value( mfx);
- /*Begin transaction*/
- ret = sqlite3_exec(pkgmgr_parser_db, "BEGIN EXCLUSIVE", NULL, NULL, NULL);
- if (ret != SQLITE_OK) {
- _LOGD("Failed to begin transaction\n");
- ret = -1;
- goto err;
- }
- _LOGD("Transaction Begin\n");
- ret = __delete_manifest_info_from_db(mfx);
- if (ret == -1) {
- _LOGD("Delete from DB failed. Rollback now\n");
- sqlite3_exec(pkgmgr_parser_db, "ROLLBACK", NULL, NULL, NULL);
- goto err;
- }
- ret = __insert_manifest_info_in_db(mfx);
- if (ret == -1) {
- _LOGD("Insert into DB failed. Rollback now\n");
- sqlite3_exec(pkgmgr_parser_db, "ROLLBACK", NULL, NULL, NULL);
- goto err;
- }
-
- /*Commit transaction*/
- ret = sqlite3_exec(pkgmgr_parser_db, "COMMIT", NULL, NULL, NULL);
- if (ret != SQLITE_OK) {
- _LOGD("Failed to commit transaction. Rollback now\n");
- sqlite3_exec(pkgmgr_parser_db, "ROLLBACK", NULL, NULL, NULL);
- ret = -1;
- goto err;
- }
- _LOGD("Transaction Commit and End\n");
-err:
- pkgmgr_parser_close_db();
- return ret;
-}