From 90f7070f171e8abe145d30150b976f0a4e13bd86 Mon Sep 17 00:00:00 2001
From: Piotr Ganicz
Date: Fri, 21 Oct 2016 16:30:51 +0200
Subject: [PATCH] [Refactor] AppInstaller logic export
This commit gather the logic of choosing proper steps sequence
to app-installer repository. All backends have to prepare their
own sequences for each pkgmgr request. The default implementation
of such methods is provided and there is no need for overriding
each function in backends.
Submit together:
- https://review.tizen.org/gerrit/#/c/93999/
- https://review.tizen.org/gerrit/#/c/93998/
Change-Id: I1f049c28908408a20db057bd36e246ba789c999b
---
src/hybrid/hybrid_installer.cc | 88 ++++++++++++++++++++++-------------------
src/hybrid/hybrid_installer.h | 20 ++++++++++
src/wgt/wgt_installer.cc | 89 +-----------------------------------------
src/wgt/wgt_installer.h | 39 +++++++++---------
4 files changed, 87 insertions(+), 149 deletions(-)
diff --git a/src/hybrid/hybrid_installer.cc b/src/hybrid/hybrid_installer.cc
index 4e36b4b..14521ab 100644
--- a/src/hybrid/hybrid_installer.cc
+++ b/src/hybrid/hybrid_installer.cc
@@ -103,9 +103,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
: AppInstaller("wgt", pkgmgr) {
context_->cross_app_rules.set(true);
context_->backend_data.set(new HybridBackendData());
+}
- switch (pkgmgr_->GetRequestType()) {
- case ci::RequestType::Install:
+void HybridInstaller::InstallSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep(
@@ -152,8 +152,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
wgt::filesystem::HybridAdditionalSharedDirs);
AddStep();
AddStep();
- break;
- case ci::RequestType::Update:
+}
+
+void HybridInstaller::UpdateSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep(
@@ -202,8 +203,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
ci::Plugin::ActionType::Upgrade);
AddStep();
AddStep();
- break;
- case ci::RequestType::Uninstall:
+}
+
+void HybridInstaller::UninstallSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep();
@@ -227,12 +229,14 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep();
AddStep();
- break;
- case ci::RequestType::Reinstall:
+}
+
+void HybridInstaller::ReinstallSteps() {
// RDS is not supported for hybrid apps
AddStep();
- break;
- case ci::RequestType::Delta:
+}
+
+void HybridInstaller::DeltaSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep(
@@ -284,8 +288,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
ci::Plugin::ActionType::Upgrade);
AddStep();
AddStep();
- break;
- case ci::RequestType::Recovery:
+}
+
+void HybridInstaller::RecoverySteps() {
AddStep(pkgmgr_);
AddStep();
AddStep(
@@ -302,8 +307,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep();
AddStep();
- break;
- case ci::RequestType::MountInstall:
+}
+
+void HybridInstaller::MountInstallSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep(
@@ -350,8 +356,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
wgt::filesystem::HybridAdditionalSharedDirs);
AddStep();
AddStep();
- break;
- case ci::RequestType::MountUpdate:
+}
+
+void HybridInstaller::MountUpdateSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep(
@@ -399,8 +406,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
ci::Plugin::ActionType::Upgrade);
AddStep();
AddStep();
- break;
- case ci::RequestType::ManifestDirectInstall:
+}
+
+void HybridInstaller::ManifestDirectInstallSteps() {
AddStep(pkgmgr_);
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
@@ -431,8 +439,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
wgt::filesystem::HybridAdditionalSharedDirs);
AddStep();
AddStep();
- break;
- case ci::RequestType::ManifestDirectUpdate:
+}
+
+void HybridInstaller::ManifestDirectUpdateSteps() {
AddStep(pkgmgr_);
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
@@ -463,8 +472,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
ci::Plugin::ActionType::Upgrade);
AddStep();
AddStep();
- break;
- case ci::RequestType::ManifestPartialInstall: {
+}
+
+void HybridInstaller::ManifestPartialInstallSteps() {
AddStep(pkgmgr_);
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
@@ -483,9 +493,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep(
wgt::filesystem::HybridAdditionalSharedDirs);
AddStep();
- break;
- }
- case ci::RequestType::ManifestPartialUpdate: {
+}
+
+void HybridInstaller::ManifestPartialUpdateSteps() {
AddStep(pkgmgr_);
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
@@ -506,9 +516,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep(
ci::Plugin::ActionType::Upgrade);
AddStep();
- break;
- }
- case ci::RequestType::PartialUninstall: {
+}
+
+void HybridInstaller::PartialUninstallSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep();
@@ -524,9 +534,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep();
AddStep();
- break;
- }
- case ci::RequestType::EnablePkg:
+}
+
+void HybridInstaller::EnablePkgSteps() {
AddStep(pkgmgr_);
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
@@ -536,8 +546,9 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Enable);
AddStep(
ci::Plugin::ActionType::Uninstall);
- break;
- case ci::RequestType::DisablePkg:
+}
+
+void HybridInstaller::DisablePkgSteps() {
AddStep(pkgmgr_);
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
@@ -547,17 +558,12 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
ci::pkgmgr::StepUpdatePkgDisableInfo::ActionType::Disable);
AddStep(
ci::Plugin::ActionType::Uninstall);
- break;
- case ci::RequestType::MigrateExtImg: {
+}
+
+void HybridInstaller::MigrateExtImgSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep();
- break;
- }
- default:
- AddStep();
- break;
- }
}
} // namespace hybrid
diff --git a/src/hybrid/hybrid_installer.h b/src/hybrid/hybrid_installer.h
index 9824d21..8331393 100644
--- a/src/hybrid/hybrid_installer.h
+++ b/src/hybrid/hybrid_installer.h
@@ -8,6 +8,8 @@
#include "common/app_installer.h"
#include "common/pkgmgr_interface.h"
+namespace ci = common_installer;
+
namespace hybrid {
/**
@@ -24,6 +26,24 @@ class HybridInstaller : public common_installer::AppInstaller {
explicit HybridInstaller(common_installer::PkgMgrPtr pkgmgr);
SCOPE_LOG_TAG(HybridInstaller)
+
+ private:
+ void InstallSteps() override;
+ void UpdateSteps() override;
+ void UninstallSteps() override;
+ void ReinstallSteps() override;
+ void DeltaSteps() override;
+ void RecoverySteps() override;
+ void MountInstallSteps() override;
+ void MountUpdateSteps() override;
+ void ManifestDirectInstallSteps() override;
+ void ManifestDirectUpdateSteps() override;
+ void DisablePkgSteps() override;
+ void EnablePkgSteps() override;
+ void ManifestPartialInstallSteps() override;
+ void ManifestPartialUpdateSteps() override;
+ void PartialUninstallSteps() override;
+ void MigrateExtImgSteps() override;
};
} // namespace hybrid
diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc
index ffa669f..e3d32ed 100755
--- a/src/wgt/wgt_installer.cc
+++ b/src/wgt/wgt_installer.cc
@@ -110,89 +110,6 @@ namespace wgt {
WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
: AppInstaller("wgt", pkgrmgr) {
context_->backend_data.set(new WgtBackendData());
-
- /* treat the request */
- switch (pkgmgr_->GetRequestType()) {
- case ci::RequestType::Install : {
- InstallSteps();
- break;
- }
- case ci::RequestType::Update: {
- UpdateSteps();
- break;
- }
- case ci::RequestType::Uninstall: {
- UninstallSteps();
- break;
- }
- case ci::RequestType::Reinstall: {
- ReinstallSteps();
- break;
- }
- case ci::RequestType::Delta: {
- DeltaSteps();
- break;
- }
- case ci::RequestType::Recovery: {
- RecoverySteps();
- break;
- }
- case ci::RequestType::MountInstall: {
- MountInstallSteps();
- break;
- }
- case ci::RequestType::MountUpdate: {
- MountUpdateSteps();
- break;
- }
- case ci::RequestType::ManifestDirectInstall: {
- ManifestDirectInstallSteps();
- break;
- }
- case ci::RequestType::ManifestDirectUpdate: {
- ManifestDirectUpdateSteps();
- break;
- }
- case ci::RequestType::ReadonlyUpdateInstall: {
- ReadonlyUpdateInstallSteps();
- break;
- }
- case ci::RequestType::ReadonlyUpdateUninstall: {
- ReadonlyUpdateUninstallSteps();
- break;
- }
- case ci::RequestType::ManifestPartialInstall: {
- ManifestPartialInstallSteps();
- break;
- }
- case ci::RequestType::ManifestPartialUpdate: {
- ManifestPartialUpdateSteps();
- break;
- }
- case ci::RequestType::PartialUninstall: {
- ManifestPartialUninstallSteps();
- break;
- }
- case ci::RequestType::Move: {
- MoveSteps();
- break;
- }
- case ci::RequestType::EnablePkg: {
- EnablePkgSteps();
- break;
- }
- case ci::RequestType::DisablePkg: {
- DisablePkgSteps();
- break;
- }
- case ci::RequestType::MigrateExtImg: {
- MigrateExtImgSteps();
- break;
- }
- default: {
- DefaultSteps();
- }
- }
}
void WgtInstaller::InstallSteps() {
AddStep(pkgmgr_);
@@ -638,7 +555,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
}
- void WgtInstaller::ManifestPartialUninstallSteps() {
+ void WgtInstaller::PartialUninstallSteps() {
AddStep(pkgmgr_);
AddStep();
AddStep();
@@ -696,8 +613,4 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
}
- void WgtInstaller::DefaultSteps() {
- AddStep();
- }
-
} // namespace wgt
diff --git a/src/wgt/wgt_installer.h b/src/wgt/wgt_installer.h
index 0c3a5e9..c25c2e1 100644
--- a/src/wgt/wgt_installer.h
+++ b/src/wgt/wgt_installer.h
@@ -26,26 +26,25 @@ class WgtInstaller : public common_installer::AppInstaller {
explicit WgtInstaller(common_installer::PkgMgrPtr pkgrmgr);
private:
- void InstallSteps();
- void UpdateSteps();
- void UninstallSteps();
- void ReinstallSteps();
- void DeltaSteps();
- void RecoverySteps();
- void MountInstallSteps();
- void MountUpdateSteps();
- void ManifestDirectInstallSteps();
- void ManifestDirectUpdateSteps();
- void ReadonlyUpdateInstallSteps();
- void ReadonlyUpdateUninstallSteps();
- void ManifestPartialInstallSteps();
- void ManifestPartialUpdateSteps();
- void ManifestPartialUninstallSteps();
- void MoveSteps();
- void EnablePkgSteps();
- void DisablePkgSteps();
- void MigrateExtImgSteps();
- void DefaultSteps();
+ void InstallSteps() override;
+ void UpdateSteps() override;
+ void UninstallSteps() override;
+ void ReinstallSteps() override;
+ void DeltaSteps() override;
+ void MoveSteps() override;
+ void RecoverySteps() override;
+ void MountInstallSteps() override;
+ void MountUpdateSteps() override;
+ void ManifestDirectInstallSteps() override;
+ void ManifestDirectUpdateSteps() override;
+ void ManifestPartialInstallSteps() override;
+ void ManifestPartialUpdateSteps() override;
+ void PartialUninstallSteps() override;
+ void ReadonlyUpdateInstallSteps() override;
+ void ReadonlyUpdateUninstallSteps() override;
+ void DisablePkgSteps() override;
+ void EnablePkgSteps() override;
+ void MigrateExtImgSteps() override;
};
} // namespace wgt
--
2.7.4