From: Piotr Ganicz Date: Fri, 21 Oct 2016 14:30:51 +0000 (+0200) Subject: [Refactor] AppInstaller logic export X-Git-Tag: accepted/tizen/common/20170309.175302~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F00%2F94000%2F5;p=platform%2Fcore%2Fappfw%2Fwgt-backend.git [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 --- 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